Dans les environnements SQL Server, deux des nombreuses fonctions de chaîne à notre disposition sont LEFT()
et SUBSTRING()
.
ces fonctions font une chose similaire, mais il y a des différences. Cet article examine certaines des principales différences entre ces fonctions.
Définition
tout d’Abord, regardons ce que chaque fonction fait:
LEFT()
Renvoie la partie gauche d’une chaîne de caractères avec le nombre de caractères spécifié., SUBSTRING()
renvoie une partie d’une expression de caractère, binaire, texte ou image.
Donc LEFT()
renvoie uniquement la partie gauche de la chaîne.
SUBSTRING()
renvoie simplement une partie de l’expression (elle ne se limite pas à la partie gauche – elle peut être à gauche, à droite ou quelque part au milieu).
exemple 1 – même résultat
Les deux fonctions peuvent être utilisées pour renvoyer un certain nombre de caractères à partir de la gauche.
SELECT LEFT("Buckethead", 6) AS , SUBSTRING("Buckethead", 1, 6) AS ;
Résultat:
+--------+-------------+| LEFT | SUBSTRING ||--------+-------------|| Bucket | Bucket |+--------+-------------+
Cependant, LEFT()
est plus concis., Cela est dû en partie au fait qu’il y a moins de caractères dans le nom de la fonction.
Mais c’est aussi à cause de la syntaxe. La fonction LEFT()
ne nécessite que deux arguments (l’expression et le nombre de caractères à renvoyer), tandis que SUBSTRING()
nécessite trois arguments (l’expression, la position de départ et le nombre de caractères à renvoyer à partir de cette position de départ).,
exemple 2 – Lorsque la sous-chaîne est meilleure
SUBSTRING()
est beaucoup mieux queLEFT()
lors de la saisie des données du milieu de la chaîne. En fait, la gauche n’est pas conçue pour ça. Si tu voulais vraiment utiliser LEFT()
pour ce faire, vous devez faire une ruse, comme l’utilisation d’un RIGHT()
fonction en tant que premier argument.,
Exemple:
SELECT LEFT(RIGHT("Buckethead", 7), 3) AS , SUBSTRING("Buckethead", 4, 3) AS ;
Résultat:
+--------------+-------------+| LEFT/RIGHT | SUBSTRING ||--------------+-------------|| ket | ket |+--------------+-------------+
Accepté Types de Données
Le LEFT()
la fonction ne pas accepter le texte et les types de données ntext en tant que premier argument. Il prend en charge tous les autres types de données qui peuvent être convertis en varchar ou nvarchar.
la fonctionSUBSTRING()
d’autre part, accepte les expressions de caractères, binaires, text, ntext et image.,
Return Values
LEFT()
renvoie varchar lorsque le premier argument est un type de données de caractères non Unicode, et nvarchar lorsqu’il s’agit d’un type de données de caractères Unicode.,
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 |