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 |