首页 > 解决方案 > 尝试在存储过程中使用时,关键字 CASE 附近的语法不正确

问题描述

检查下面的 SQL 查询storedprocedure。我正在尝试实现CASE@Query变量设置一些值,但CASE语法抛出错误:

关键字“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;

图片

标签: sql

解决方案


您想要在单个中使用的CASE 表达式SET

SET @query = (CASE WHEN @Type = 1 THEN ''
                   WHEN @Type = 2 THEN ''
                   WHEN @Type = 3 THEN ''
                   ELSE ''
              END);

当然,您的所有内容都CASE将值设置为'',因此不需要条件逻辑。我假设您的实际代码具有不同的值。


推荐阅读