Как это исправить в случае выражения? - PullRequest
2 голосов
/ 01 июля 2019
Select 
    ID, date_d,
    Case ID 
       when ID >= 0 then "greater" 
       else "Smaller"
    End as Grtr 
from 
    emp_date

Ошибка:

Сообщение 102, Уровень 15, Состояние 1, Строка 24
Неверный синтаксис рядом с '>'

Input

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

Ответы [ 2 ]

1 голос
/ 01 июля 2019

Сокращенный синтаксис (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
1 голос
/ 01 июля 2019

Вам необходимо использовать искомое выражение регистра (оригинальная версия сочетает в себе простой и искомый синтаксис):

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  
...