I SQL Server-miljøer, to av de mange string funksjoner til rådighet er LEFT()
og SUBSTRING()
.
Disse funksjonene har en lignende ting, men det er forskjeller. Denne artikkelen ser på noen av de viktigste forskjellene mellom disse funksjonene.
Defintion
Først, la oss se på hva hver funksjon gjør:
LEFT()
Returnerer venstre del av en tekststreng med angitt antall tegn., SUBSTRING()
Returnerer en del av en karakter, binære, tekst, eller bilde-uttrykk.
Så LEFT()
returnerer bare den venstre delen av strengen.
SUBSTRING()
returnerer ganske enkelt en del av uttrykket (det er ikke begrenset til bare den venstre delen – det kan være venstre, høyre eller et sted i midten).
Eksempel 1 – Samme Resultat
Begge funksjoner kan brukes til å gå tilbake et visst antall tegn fra venstre.
SELECT LEFT("Buckethead", 6) AS , SUBSTRING("Buckethead", 1, 6) AS ;
Resultat:
+--------+-------------+| LEFT | SUBSTRING ||--------+-------------|| Bucket | Bucket |+--------+-------------+
Imidlertid LEFT()
er mer konsis., Dette er delvis på grunn av det faktum at det er mindre tegn i navnet på funksjonen.
Men det er også på grunn av syntaksen. LEFT()
funksjon bare krever to argumenter (uttrykket, og antall tegn for å gå tilbake), mens SUBSTRING()
krever tre argumenter (uttrykket, start-posisjon, og antall tegn for å gå tilbake fra at startposisjonen).,
Eksempel 2 – Når DELSTRENG er Bedre
SUBSTRING()
er mye bedre enn LEFT()
ved å ta tak i data fra midten av strengen. Faktisk, venstre er ikke laget for det. Hvis du virkelig ønsket å bruke LEFT()
for å gjøre dette, vil du trenger å gjøre noen lureri, for eksempel bruker en RIGHT()
funksjon som første argument.,
Eksempel:
SELECT LEFT(RIGHT("Buckethead", 7), 3) AS , SUBSTRING("Buckethead", 4, 3) AS ;
Resultat:
+--------------+-------------+| LEFT/RIGHT | SUBSTRING ||--------------+-------------|| ket | ket |+--------------+-------------+
Akseptert Datatyper
LEFT()
funksjon ikke godta teksten og ntext typer data, som første argument. Den støtter alle andre typer data som kan konverteres til varchar eller nvarchar.
SUBSTRING()
funksjon på den annen side, aksepterer karakter, binære, tekst, ntext, og bildet uttrykk.,
Returnere Verdier
LEFT()
returnerer varchar når det første argumentet er et ikke-Unicode-tegnet datatype, og nvarchar når det er et Unicode-tegn datatype.,
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 |