SQL Server-ympäristöissä, kaksi monista string toimintoja käytössämme ovat LEFT()
ja SUBSTRING()
.
nämä funktiot toimivat samalla tavalla, mutta eroja on. Tässä artikkelissa tarkastellaan joitakin tärkeimpiä eroja näiden toimintojen.
Definition
Ensimmäinen, nyt katsoa, mitä kukin toiminto tekee:
LEFT()
Palaa vasen osa merkkijono määritetyn määrän merkkejä., SUBSTRING()
palauttaa osan merkistä, binääristä, tekstistä tai kuvailmaisusta.
So LEFT()
palauttaa vain merkkijonon vasemman osan.
SUBSTRING()
yksinkertaisesti palauttaa osa ilmaisua (se ei rajoitu vain vasen osa – se voi olla vasemmalle, oikealle tai jossain keskellä).
Esimerkki 1 – Sama Tulos
Molemmat toiminnot voidaan palauttaa tietyn määrän merkkejä vasemmalta.
SELECT LEFT("Buckethead", 6) AS , SUBSTRING("Buckethead", 1, 6) AS ;
Tulos:
+--------+-------------+| LEFT | SUBSTRING ||--------+-------------|| Bucket | Bucket |+--------+-------------+
Kuitenkin, LEFT()
on suppeampi., Tämä johtuu osittain siitä, että funktion nimessä on vähemmän merkkejä.
mutta se johtuu myös syntaksista. LEFT()
toiminto vaatii vain kaksi argumenttia (ilmaus, ja merkkien määrä palata), kun taas SUBSTRING()
vaatii kolme argumenttia (ilmaus, alkuasentoon, ja merkkien määrä palata, että alkuasentoon).,
Esimerkki 2 – Kun SUBSTRING on Parempi
SUBSTRING()
on paljon parempi kuin LEFT()
klo tarttumalla tietoja keskellä merkkijono. Vasemmisto ei ole suunniteltu sitä varten. Jos todella halusi käyttää LEFT()
voit tehdä tämän, sinun täytyy tehdä joitakin temppuja, kuten käyttää RIGHT()
toimivat sen ensimmäinen argumentti.,
Esimerkki:
SELECT LEFT(RIGHT("Buckethead", 7), 3) AS , SUBSTRING("Buckethead", 4, 3) AS ;
Tulos:
+--------------+-------------+| LEFT/RIGHT | SUBSTRING ||--------------+-------------|| ket | ket |+--------------+-------------+
Hyväksytty tietotyypit
LEFT()
funktio ei hyväksy tekstiä ja ntext tiedot tyypit, koska sen ensimmäinen argumentti. Se tukee kaikkia muita tietotyyppejä, jotka voidaan muuntaa varchar tai nvarchar.
SUBSTRING()
toiminto toisaalta, hyväksyy merkki, binääri, teksti, ntext, ja kuva ilmaisuja.,
Paluu Arvot
LEFT()
palaa varchar kun ensimmäinen argumentti on non-Unicode tietojen tyyppi, ja nvarchar, kun se on Unicode character data tyyppi.,
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 |