IF和ELSE将十进制值转换为字符串

oli*_*dev 1 sql t-sql sql-server

我正在使用MSSQL,需要编写一个查询来:

RESULT
------
abc
Run Code Online (Sandbox Code Playgroud)

例如,如果我有这个表:

CREATE TABLE A (a int)
Run Code Online (Sandbox Code Playgroud)

..并尝试使用:

SELECT IF a > 20 THEN 'abc' 
       ELSE 'def' 
       END 
  FROM A
Run Code Online (Sandbox Code Playgroud)

但它不适用于SQL.这怎么可能?

Mit*_*eat 8

SELECT 
    CASE WHEN a > 20 THEN 'abc' 
         ELSE 'def' 
    END 
FROM A 
Run Code Online (Sandbox Code Playgroud)