[TSQL] Pb de syntaxe avec CASE WHEN & REPLACE
Bonjour,
Je débute en SQL, je vous remercie par avance pour votre aide.
J'ai des noms de commerciaux [REPNUM_0] qui sont
ANMA
AB-E
SMA-S
FSA
etc.
Je souhaite une colonne où j'ai l'identité du commercial, qui est soit la chaîne de caractère avant le "-", soit la chaîne de caractère complète s'il n'y a pas le tiret.
Dans mon exemple :
ANMA
AB
SMA
FSA
Si l'option avant le tiret fonctionne :
Code:
1 2 3 4 5
|
SELECT
[REPNUM_0],
REPLACE(SUBSTRING([SALESREP].[REPNUM_0], 1,CHARINDEX('-',REPNUM_0)),'-','') as REPNUM2_0
FROM [cfiprod].[CFIPRD].SALESREP |
Je n'arrive pas à syntaxer correctement le CASE WHEN :
Code:
1 2 3 4 5 6 7
|
SELECT [REPNUM_0]
,CASE
WHEN CHARINDEX('-', REPNUM_0) > 0
THEN REPLACE(SUBSTRING([SALESREP].[REPNUM_0], 1, CHARINDEX('-', REPNUM_0)), '-', '') AS REPNUM2_0
ELSE [SALESREP].[REPNUM_0] = REPNUM2_0
END |
J'ai été aidée par un consultant sur le premier bout de code, et j'aimerais garder le même principe avec un CASE WHEN.
Même si c'est important pour moi que ça fonctionne, il m'est plus important de comprendre où est mon erreur.
Je vous remercie par avance pour votre aide.