Je voudrais savoir comment je peux utiliser des variables locales dans les instructions CASE
en SQL?
Ce script me donne une erreur:
DECLARE @Test int; DECLARE @Result char(10); SET @Test = 10; CASE @Test WHEN @Test = 10 THEN SET @Result='OK test' END Print @Result;
J'utilise MS SQL 2008.
Deux façons d'utiliser CASE dans ce scénario avec MSSQL
DECLARE @test int, @result char(10) SET @test = 10 SET @result = CASE @test WHEN 10 THEN 'OK test' ELSE 'Test is not OK' END PRINT @result; SET @result = CASE WHEN @test = 10 THEN 'OK test' ELSE 'Test is not OK' END PRINT @result
essaye ça:
DECLARE @Test int; DECLARE @Result char(10); SET @Test = 10; select @Result= CASE @Test WHEN 10 THEN 'OK test' END Print @Result;
CASE @Test QUAND 10 ALORS
DECLARE @Test int; SET @Test = 10; SELECT CASE @Test WHEN 10 THEN 'OK test' END
Pour le server SQL 2005
Dans SQL Server, je l'écrirais comme ceci:
DECLARE @Test int; DECLARE @Result char(10); SET @Test = 10; SET @Result = CASE @Test WHEN 10 THEN 'OK test' END Print @Result;
La clause WHEN
n'a pas @Test = 10
, car la variable @Test
est indiquée dans la clause CASE
.
Voir la documentation CASE
pour SQL Server.