v prostředích serveru SQL jsou dvě z mnoha řetězcových funkcí, které máme k dispozici, LEFT()
a SUBSTRING()
.
tyto funkce dělají podobnou věc, ale existují rozdíly. Tento článek se zabývá některými hlavními rozdíly mezi těmito funkcemi.
Definice
za Prvé, pojďme se podívat na to, co každá funkce dělá:
LEFT()
Vrátí levou část řetězec znaků s určený počet znaků., SUBSTRING()
vrací část znaku, binárního, textového nebo obrazového výrazu.
takže LEFT()
vrací pouze levou část řetězce.
SUBSTRING()
jednoduše vrátí část výrazu (není omezena jen na levé straně – může to být vlevo, vpravo nebo někde uprostřed).
Příklad 1-stejný výsledek
obě funkce lze použít k návratu určitého počtu znaků zleva.
SELECT LEFT("Buckethead", 6) AS , SUBSTRING("Buckethead", 1, 6) AS ;
Výsledek:
+--------+-------------+| LEFT | SUBSTRING ||--------+-------------|| Bucket | Bucket |+--------+-------------+
Nicméně, LEFT()
je výstižnější., To je částečně způsobeno skutečností, že v názvu funkce je méně znaků.
ale je to také kvůli syntaxi. LEFT()
pouze funkci vyžaduje dva argumenty (výraz, a počet znaků pro návrat), vzhledem k tomu SUBSTRING()
vyžaduje tři argumenty (výraz, počáteční pozice a počet znaků pro návrat od výchozí polohy).,
Příklad 2 – Když PODŘETĚZEC je Lepší
SUBSTRING()
je lepší než LEFT()
na získávání dat od středu řetězce. Levice na to vlastně není určena. Pokud jste opravdu chtěli použít LEFT()
, musíte jako první argument použít funkci RIGHT()
.,
Příklad:
SELECT LEFT(RIGHT("Buckethead", 7), 3) AS , SUBSTRING("Buckethead", 4, 3) AS ;
Výsledek:
+--------------+-------------+| LEFT/RIGHT | SUBSTRING ||--------------+-------------|| ket | ket |+--------------+-------------+
Datové Typy
LEFT()
funkce nepřijímá text a ntext typy dat, jako její první argument. Podporuje všechny ostatní datové typy, které lze převést na varchar nebo nvarchar.
SUBSTRING()
funkce na druhé straně, přijímá znak, binární, text, ntext a image výrazy.,
Návratové Hodnoty
LEFT()
vrátí varchar, když první argument je non-Unicode znak datového typu, a nvarchar, když je Unicode znak datového typu.,
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 |