【问题标题】:SELECT CASE Syntax ErrorSELECT CASE 语法错误
【发布时间】:2012-11-27 10:55:30
【问题描述】:

我有以下@temp 表:

------------------------------------
|Condition_ID   Operator   Order    |
|     1            ==        1      |
|     2            <>        3      |
|     3            ==        2      |
------------------------------------

我想实现一个 SELECT CASE,它会根据 Operator 输出特定的消息

但是这会引发Incorrect syntax near the keyword 'PRINT'. 错误。

SELECT CASE
    WHEN Operator LIKE '=='
        THEN PRINT 'EQUALS'
    WHEN Operator LIKE '<>'
        THEN PRINT 'NOT EQUALS'
END AS Operator
FROM @temp

我做错了什么?

【问题讨论】:

    标签: sql tsql select-case


    【解决方案1】:

    您只需删除PRINT

    SELECT CASE
        WHEN Operator LIKE '=='
            THEN 'EQUALS'
        WHEN Operator LIKE '<>'
            THEN 'NOT EQUALS'
    END AS Operator
    FROM @temp
    

    您不能在 SELECT 中使用 PRINT,也不需要 - SELECT 将为您检索适当的值。

    【讨论】:

    • 您需要在“AS”之前添加一个“END”。很好的答案,谢谢。
    【解决方案2】:

    您不能混合使用PRINTSELECT

    SELECT CASE WHEN Operator LIKE '=='
                THEN 'EQUALS'
                WHEN Operator LIKE '<>'
                THEN 'NOT EQUALS'
           END AS Operator
    FROM @temp
    

    【讨论】:

    • 这是否意味着我不能使用PRINT
    • 您是否明确需要 PRINT?
    • 没有,但我想知道是否可以使用它。
    • 不能同时使用 select 和 print。
    【解决方案3】:

    这行得通::

       SELECT CASE
        WHEN opr LIKE '=='
            THEN 'EQUALS'
        WHEN opr LIKE '<>'
            then 'NOT EQUALS'
        else
            'wrong i/p'
        end
    as operator
    FROM tbl1;
    

    【讨论】:

      【解决方案4】:

      试试这个,没有打印选项

      SELECT CASE 
              WHEN Operator LIKE '=='
              THEN 'EQUALS'
              WHEN Operator LIKE '<>'
              THEN 'NOT EQUALS'
         END AS Operator
         FROM @temp
      

      【讨论】:

        猜你喜欢
        • 2012-10-03
        • 2022-01-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-16
        • 2018-07-27
        • 1970-01-01
        相关资源
        最近更新 更多