这是MSSQL CASE语句的好方案吗?

时间:2014-03-07 08:42:14

标签: sql-server coldfusion

我正在尝试将一些工作从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是什么?

1 个答案:

答案 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