这是MSSQL CASE语句的一个好场景吗?

22 浏览
0 Comments

这是MSSQL CASE语句的一个好场景吗?

这个问题已经有了答案:

如何在SQL SELECT语句中执行IF...THEN?

我正在尝试将一些工作从CF服务器转移到SQL Server(2008)中。

我运行一个查询,返回的statusID值对应四种颜色(绿色、黄色、橙色和红色)中的一种。

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中应该填什么?

admin 更改状态以发布 2023年5月21日
0
0 Comments

你的语法接近,尽管你只需要一个最大的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

0