如何解决这种情况下的表达?

时间:2019-07-01 19:08:32

标签: sql sql-server syntax syntax-error case

Select 
    ID, date_d,
    Case ID 
       when ID >= 0 then "greater" 
       else "Smaller"
    End as Grtr 
from 
    emp_date

错误:

  

第15层状态1的第24行的消息102
  '>'

附近的语法不正确

输入

ID      date_d
----------------
1   2018-02-02
2   2018-03-31
3   2019-03-31

2 个答案:

答案 0 :(得分:1)

您需要使用搜索到的大小写表达式(原始版本混合了简单/搜索到的语法):

Select ID,date_d, Case  when ID >= 0 then 'greater' Else 'Smaller' End as Grtr 
from emp_date

CASE

Searched CASE expression:  
CASE  
     WHEN Boolean_expression THEN result_expression [ ...n ]   
     [ ELSE else_result_expression ]   
END  

答案 1 :(得分:1)

速记语法(case expression when value ...)在一系列相等条件上基本上是语法糖。如果要使用其他运算符,则需要使用完整语法(case when condition then...)。例如:

Select ID,date_d,
Case 
   when ID >= 0 then 'Greater'
    Else 'Smaller'
    End as Grtr 
from emp_date