Check the SQL Query below in storedprocedure
. I am trying to implement CASE
to set some values to the @Query
variable, but the CASE
syntax is throwing error:
Incorrect syntax near the keyword 'CASE'.
DECLARE @Query AS VARCHAR(max);
CASE
WHEN @Type=1 THEN
SET @Query = ''
WHEN @Type=2 THEN
SET @Query = ''
WHEN @Type=3 THEN
SET @Query = ''
ELSE
SET @Query = '';
END;
CodePudding user response:
You want a CASE
expression used in a single SET
:
SET @query = (CASE WHEN @Type = 1 THEN ''
WHEN @Type = 2 THEN ''
WHEN @Type = 3 THEN ''
ELSE ''
END);
Of course, everything in your CASE
is setting the value to ''
, so conditional logic is not needed. I assume your actual code has different values.
CodePudding user response:
You should start with SELECT
, otherwise it's not a valid CASE
statement. Also maybe you need to store the Result of the CASE in a separate Variable like SELECT @Query = CASE WHEN ...