J'ai le code ci-dessous que je ne peux pas trouver ce qui cause l'erreur de conversion. Quelqu'un peut-il aider à identifier le problème?Erreur de conversion dans SQL Server - pourquoi?
[COLUMN_A] = CASE
WHEN [COLUMN_B] IS NOT NULL
AND [COLUMN_B] <> ''
AND CHARINDEX('MG', [COLUMN_B], 1) <> 0
THEN CONVERT(DECIMAL(8, 4), RTRIM(LEFT([COLUMN_B], CHARINDEX('MG', [COLUMN_B], 1)))
WHEN [COLUMN_B] IS NOT NULL
AND [COLUMN_B] <> ''
AND CHARINDEX('MCG', [COLUMN_B], 1) <> 0
THEN CONVERT(DECIMAL(8, 4), RTRIM(LEFT([COLUMN_B], CHARINDEX('MCG', [COLUMN_B], -1)))
WHEN [COLUMN_B] IS NOT NULL
AND [COLUMN_B] <> ''
THEN CONVERT(DECIMAL(8, 4), RTRIM([COLUMN_B]))
ELSE NULL
END
Quelle erreur obtenez-vous? – Xedni
Veuillez fournir des exemples de données. Je devine que cela a à voir avec le fait que vous faites des suppositions sur ce à quoi ressemblent les chaînes et où vous pouvez réellement couper la chaîne pour obtenir un nombre décimal. – Xedni
@Xedni - il n'y a * aucune donnée possible pouvant correspondre aux deux premières branches de l'expression de cas et être numérique. –