Longueur non valide paramètre passé à la GAUCHE ou à la fonction de sous-CHAÎNE dans Sql Server
Tout en essayant d'exécuter la requête ci-dessous
Declare @t table (id int, string varchar(1000))
INSERT INTO @t (id, string)
SELECT 1, 'zxzzxx,ppppbppp,trtrtr,tyyt,hgghh,fefew,rewr,rwerer'
;WITH test (id, lft, rght, idx)
AS
(
SELECT t.id
,LEFT(t.string, CHARINDEX(', ', t.string) - 1)
,SUBSTRING(t.string, CHARINDEX(', ', t.string) + 2, DATALENGTH(t.string))
,0
FROM @t t
UNION ALL
SELECT c.id
,CASE WHEN CHARINDEX(', ', c.rght) = 0 THEN c.rght ELSE LEFT(c.rght, CHARINDEX(', ', c.rght) - 1) END
,CASE WHEN CHARINDEX(', ', c.rght) > 0 THEN SUBSTRING(c.rght, CHARINDEX(', ', c.rght) + 2, DATALENGTH(c.rght))
ELSE '' END
,idx + 1
FROM test c
WHERE DATALENGTH(c.rght) > 0
)
select id, lft from test
J'obtiens l'erreur ci-dessous
Msg 537, Level 16, State 2, Line 8
Invalid length parameter passed to the LEFT or SUBSTRING function.
mais le même travaille pour SÉLECTIONNER 1, 'de la, rapide, brun, fox, sauter, sur, la, le, les paresseux, "chien"
S'il vous plaît aider
OriginalL'auteur aditi | 2011-06-17
Vous devez vous connecter pour publier un commentaire.
Il semble être un espace manquant entre vos mots.
Vous êtes actuellement à la recherche d'charindex de
', '
pas','
.Et la chaîne n'a pas n'importe quel match de
', '
.OriginalL'auteur Johan
Cette message d'Erreur se produit généralement lorsque vous faites ces étapes;
Lorsque vous utilisez Sous-chaîne,
de gauche, droit fonctions.
Lorsque vous utilisez CharIndex (utilisé dans
le champ, le mot ou la parole
de recherche, ou la longueur d'un caractère
insuffisant)
La valeur de retour est renvoyé à chaque serveur dans l'expression de la requête, le résultat de l'opération
0
(zéro) renvoie, en cas d'erreur renvoie-1
Cela ne va pas entraîner des erreurs pour le serveur retourne une valeur de -1 ou sont des objets comparés.
select left(value,charindex('-',value)) from table where value like '%-%'
. La conditionvalue like '%-%'
nous assure qu'il n'y aura pas un résultat sans caractère '-' recherchés dans notre charindex fonction et leur valeur de retour sera toujours positif.OriginalL'auteur Soner Gönül