12
votes

Case SQL et variables locales

J'aimerais savoir comment je peux utiliser des variables locales dans Case Code> Déclarations dans SQL?

Ce script me donne une erreur: p>

    DECLARE @Test int;
    DECLARE @Result char(10);
    SET @Test = 10;

    CASE @Test
    WHEN @Test = 10
    THEN SET @Result='OK test'
    END
    Print @Result;


1 commentaires

Ont-ils laissé tomber la partie "serveur" du nom? ;-P


5 Réponses :


2
votes

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;


2 commentaires

Cela ne fonctionne pas dans ma DB SQL 2005. (syntaxe incorrecte près du mot clé 'case'). (J'ai eu la même solution, mais cela n'a pas fonctionné).


La syntaxe ici est fausse. Vous ne pouvez pas utiliser une déclaration de cas comme une instruction IF.



0
votes

cas @Test quand 10 alors


0 commentaires

24
votes

Deux façons d'utiliser un cas 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


0 commentaires

0
votes
DECLARE @Test int;
SET @Test = 10;

SELECT 
CASE @Test
WHEN 10
THEN 'OK test'
END
For SQL server 2005

1 commentaires

La réponse d'Anishmarokey est un peu plus propre car elle conserve votre variable @Result.



3
votes

Essayez ceci:

DECLARE @Test int;
DECLARE @Result char(10);
SET @Test = 10;

select @Result=
CASE @Test
WHEN 10 THEN  'OK test'
END

Print @Result;


0 commentaires