I S .l Server-miljøer er to af de mange strengfunktioner, vi har til rådighed, LEFT()
og SUBSTRING()
.
disse funktioner gør en lignende ting, men der er forskelle. Denne artikel ser på nogle af de vigtigste forskelle mellem disse funktioner.
Defintion
lad os Først se på, hvad hver funktion gør:
LEFT()
Returnerer den venstre del af en tegnstreng med det angivne antal tegn., SUBSTRING()
returnerer en del af et tegn, binært, tekst-eller billedudtryk.
såLEFT()
returnerer kun den venstre del af strengen.
SUBSTRING()
returnerer blot en del af udtrykket (det er ikke begrænset til kun den venstre del – det kan være venstre, højre eller et sted i midten).
eksempel 1 – samme resultat
begge funktioner kan bruges til at returnere et vist antal tegn fra venstre.
SELECT LEFT("Buckethead", 6) AS , SUBSTRING("Buckethead", 1, 6) AS ;
Resultat:
+--------+-------------+| LEFT | SUBSTRING ||--------+-------------|| Bucket | Bucket |+--------+-------------+
Men LEFT()
er mere kortfattet., Dette skyldes delvis, at der er færre tegn i funktionsnavnet.
men det er også på grund af syntaksen. Funktionen LEFT()
kræver kun to argumenter (udtrykket og antallet af tegn, der skal returneres), mens SUBSTRING()
kræver tre argumenter (udtrykket, startpositionen og antallet af tegn, der skal vende tilbage fra den startposition).,
Eksempel 2 – Når SUBSTRING er Bedre
SUBSTRING()
er meget bedre end LEFT()
på at snuppe data fra midten af strengen. Faktisk er venstre ikke designet til det. Hvis du virkelig ville bruge LEFT()
for at gøre dette, skal du gøre noget trickery, såsom brug en RIGHT()
funktion som sit første argument.,
Eksempel:
SELECT LEFT(RIGHT("Buckethead", 7), 3) AS , SUBSTRING("Buckethead", 4, 3) AS ;
Resultat:
+--------------+-------------+| LEFT/RIGHT | SUBSTRING ||--------------+-------------|| ket | ket |+--------------+-------------+
Accepterede Data Typer
LEFT()
funktion ikke acceptere teksten og ntext data typer som det første argument. Det understøtter alle andre datatyper, der kan konverteres til varchar eller nvarchar.
funktionenSUBSTRING()
accepterer på den anden side tegn, binær, tekst, nte .t og billedudtryk.,
Returnere Værdier
LEFT()
returnerer varchar når det første argument er en ikke-Unicode-data type, og nvarchar, når det er en Unicode-data type.,
The return values for SUBSTRING()
are as follows:
Expression (first argument) | Return type |
---|---|
char/varchar/text | varchar |
nchar/nvarchar/ntext | nvarchar |
binary/varbinary/image | varbinary |