J'utilise cela pour couper les données à gauche du panneau de conduite, signifie que je veux seulement que des données à gauche du signal de tuyau puisent entier si aucun signe de tuyau n'est là, il jette une erreur.
ERREUR: P>
Paramètre de longueur non valide transmis à la fonction de gauche ou de sous-chaîne. P> blockQuote>
code: p>
xxx pré> p>
3 Réponses :
Ceci devrait être
SELECT TOP 1000 [ID]
,case
when CHARINDEX('(', ProjectNo) > 0 then
rtrim(left(ProjectNo, CHARINDEX('(', ProjectNo) - 1))
else
ProjectNo
end ProjectNo
Ceci est parce que charindex ('(', projectno) - 1 code> peut donner une valeur négative non valide, comme états d'erreur.
Je crois que vous voulez: SELECT TOP 1000 [ID]
,case when CHARINDEX('|', ProjectNo) > 0 then
rtrim(left(ProjectNo, CHARINDEX('|', ProjectNo) - 1))
else ProjectNo
end ProjectNo
Vous pouvez simplement ajouter le caractère que vous recherchez dans le charindex () code> expression:
BTW Ajoutez un
fin code> à la fin decas.Quand code> Syntaxe.ouais j'ai mais toujours même problème
ProjectNo code> est de type numérique ..? Cela pourrait être le problème, on dirait que vous avez besoin de convertir en une chaîne.non, sa corde monsieur