Database.Guide (Nederlands)

In SQL Server-omgevingen zijn twee van de vele string-functies die tot onze beschikking staan LEFT() en SUBSTRING().

deze functies doen iets gelijkaardigs, maar er zijn verschillen. Dit artikel gaat in op enkele van de belangrijkste verschillen tussen deze functies.

definitie

laten we eerst eens kijken wat elke functie doet:

LEFT() geeft het linkerdeel van een Tekenreeks terug met het opgegeven aantal tekens., SUBSTRING() geeft een deel van een teken, binaire, tekst-of afbeeldingsexpressie terug.

So LEFT() geeft alleen het linkerdeel van de Tekenreeks terug.

SUBSTRING() geeft gewoon een deel van de expressie terug (het is niet beperkt tot alleen het linkerdeel – het kan links, rechts of ergens in het midden zijn).

Voorbeeld 1-hetzelfde resultaat

beide functies kunnen worden gebruikt om een bepaald aantal tekens van links terug te geven.

SELECT LEFT("Buckethead", 6) AS , SUBSTRING("Buckethead", 1, 6) AS ;

resultaat:

+--------+-------------+| LEFT | SUBSTRING ||--------+-------------|| Bucket | Bucket |+--------+-------------+

echter, LEFT() is beknopter., Dit is deels te wijten aan het feit dat er minder tekens in de functienaam.

maar het komt ook door de syntaxis. De functie LEFT() vereist slechts twee argumenten (de expressie en het aantal tekens dat moet worden teruggegeven), terwijl SUBSTRING() drie argumenten vereist (de expressie, de beginpositie en het aantal tekens dat van die beginpositie moet worden teruggegeven).,

Voorbeeld 2 – wanneer SUBSTRING beter is

SUBSTRING() is veel beter dan LEFT() bij het ophalen van gegevens uit het midden van de tekenreeks. Daar is links niet voor ontworpen. Als u echt LEFT() wilt gebruiken om dit te doen, moet u een aantal trucjes doen, zoals het gebruik van een RIGHT() functie als het eerste argument.,

voorbeeld:

SELECT LEFT(RIGHT("Buckethead", 7), 3) AS , SUBSTRING("Buckethead", 4, 3) AS ;

resultaat:

+--------------+-------------+| LEFT/RIGHT | SUBSTRING ||--------------+-------------|| ket | ket |+--------------+-------------+

geaccepteerde gegevenstypen

de functieLEFT() accepteert de tekst-en ntext-gegevenstypen niet als eerste argument. Het ondersteunt alle andere gegevenstypen die kunnen worden geconverteerd naar varchar of nvarchar.

de functie SUBSTRING() accepteert daarentegen karakter -, binaire, tekst -, ntext-en afbeeldingsuitdrukkingen.,

retourneer waarden

LEFT() geeft varchar terug wanneer het eerste argument een niet-Unicode karaktergegevenstype is, en nvarchar wanneer het een Unicode karaktergegevenstype is.,

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

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *