Ho un codice T-SQL che utilizza più istruzioni if (circa 100) come di seguito. Se la prima condizione dell'istruzione IF viene valutata su TRUE, valuta ancora il resto di 99 istruzioni.SQL CASE Expression - Impostazione dei valori delle variabili locali
IF(@check = 'abc') SET @var1 = @value
IF(@check = 'def') SET @var2 = @value
IF(@check = 'ghi') SET @var3 = @value
IF(@check = 'jkl') SET @var4 = @value
IF(@check = 'mno') SET @var5 = @value
…
…
Voglio convertirli per usare un'espressione CASE. per es
CASE @check
WHEN 'abc' THEN SET @var1 = @value
WHEN 'def' THEN SET @var2 = @value
WHEN 'ghi' THEN SET @var3 = @value
WHEN 'jkl' THEN SET @var4 = @value
WHEN 'mno' THEN SET @var5 = @value
…
…
END
Tuttavia, io non sono in grado di farlo, e ottengo un errore SQL che dice che non posso utilizzare SET all'interno di un'espressione CASE.
Qualcuno ha qualche idea su come posso raggiungere questo obiettivo? Grazie!
È possibile utilizzare altro se, ma, ognuna di queste condizioni sta impostando una variabile diversa. Sei sicuro di aver digitato correttamente la domanda? –
Funzionerà 'SET @ var1 = CASO QUANDO ... POI ... FINE'? – a1ex07
Perché hai bisogno di 100 variabili diverse? Perché non basta assegnare a * una * variabile in base al valore di '@ check'? –