SQL Server környezetben a rendelkezésünkre álló számos karakterláncfunkció közül kettő a LEFT()
és SUBSTRING()
.
ezek a funkciók hasonló dolgot tesznek, de vannak különbségek. Ez a cikk a funkciók közötti főbb különbségeket vizsgálja.
Defintion
először nézzük meg, mit csinál minden funkció:
LEFT()
visszaadja a Karakterlánc bal részét a megadott számú karakterrel., SUBSTRING()
visszaadja egy karakter, bináris, szöveg vagy kép kifejezés egy részét.
So LEFT()
csak a Karakterlánc bal oldalát adja vissza.
SUBSTRING()
egyszerűen visszaadja a kifejezés egy részét (ez nem korlátozódik csak a bal részre – balra, jobbra vagy valahol középen lehet).
1. példa-ugyanaz az eredmény
mindkét funkció használható egy bizonyos számú karakter visszaadására balról.
SELECT LEFT("Buckethead", 6) AS , SUBSTRING("Buckethead", 1, 6) AS ;
eredmény:
+--------+-------------+| LEFT | SUBSTRING ||--------+-------------|| Bucket | Bucket |+--------+-------------+
azonban LEFT()
tömörebb., Ez részben annak köszönhető, hogy kevesebb karakter van a függvénynévben.
de ez is azért, mert a szintaxis. A LEFT()
funkció csak a szükséges két érvet (a véleménynyilvánítás, valamint a karakterek száma, a visszatérés), míg a SUBSTRING()
igényel három érvek (a kifejezés, a kiinduló helyzetbe, majd a karakterek száma, vissza a kiindulási helyzet).,
2. példa-ha a SUBSTRING jobb
SUBSTRING()
sokkal jobb, mint a LEFT()
az adatok megragadása a karakterlánc közepétől. Valójában a bal oldalt nem erre tervezték. Ha igazán akarta használni a LEFT()
ehhez meg kell tennie néhány trükköt, például használjon egy RIGHT()
függvényt az első érvként.,
példa:
SELECT LEFT(RIGHT("Buckethead", 7), 3) AS , SUBSTRING("Buckethead", 4, 3) AS ;
eredmény:
+--------------+-------------+| LEFT/RIGHT | SUBSTRING ||--------------+-------------|| ket | ket |+--------------+-------------+
elfogadott adattípusok
aLEFT()
függvény nem fogadja el a szöveget és az ntext adattípusokat első érvként. Támogatja az összes többi adattípust, amelyet varchar vagy nvarchar formátumba lehet konvertálni.
a SUBSTRING()
függvény viszont elfogadja karakter, bináris, szöveg, ntext, kép kifejezések.,
visszatérési értékek
LEFT()
visszaadja a varchart, ha az első argumentum nem Unicode karakter adattípus, és Nvarchar, ha Unicode karakter adattípus.,
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 |