我正在尝试将一些工作从CF服务器卸载到SQL Server(2008)。
我正在运行查询,返回的statusID值对应于4种颜色之一(绿色,黄色,橙色和红色)。
select id, statusID
from table
如果这是使用案例陈述的理想情况,这是正确的吗?
select id,
case
when statusid in (1,20,24)
then 'red'
END as xxxx) as yyyy, *
from TABLE
如果这是正确的,上面的xxxx和yyyy是什么?
答案 0 :(得分:5)
你已经接近语法了,虽然你只想要一个AS
来给列命名,所以你可以有这样的东西(当然,我已经想到了价值观说明选项):
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