This question already has answers here:
How do I perform an IF…THEN in an SQL SELECT?
(31个答案)
7年前关闭。
我正在尝试将一些工作从CF服务器转移到SQL Server(2008)。
我正在运行查询,返回的statusID值对应于4种颜色(绿色,黄色,橙色和红色)之一。
如果这是使用case语句的理想情况,这是正确的吗?
如果这是正确的话,上面的xxxx和yyyy会是什么?
(31个答案)
7年前关闭。
我正在尝试将一些工作从CF服务器转移到SQL Server(2008)。
我正在运行查询,返回的statusID值对应于4种颜色(绿色,黄色,橙色和红色)之一。
select id, statusID
from table
如果这是使用case语句的理想情况,这是正确的吗?
select id,
case
when statusid in (1,20,24)
then 'red'
END as xxxx) as yyyy, *
from TABLE
如果这是正确的话,上面的xxxx和yyyy会是什么?
最佳答案
您与语法很接近,尽管您只希望最多一个AS
为该列命名,所以您可能会有类似的内容(当然,我梦dream以求地说明了这些选项):
SELECT id,
CASE
WHEN statusid IN (1,20,24) THEN 'red'
WHEN statusid IN (2,30,34) THEN 'yellow'
WHEN statusid 8 THEN 'orange'
WHEN statusid > 35 THEN 'green'
ELSE 'unrecognised'
END AS ColorName,
statusid
FROM dbo.table