SQL Server:在查询中使用IF语句

时间:2017-01-06 01:28:17

标签: sql sql-server

enter image description here

我的数据库包含上述数据。它只有代码数据。

数据库没有关于字符串“New Member”,“Leave Member”,“Current Member”的代码状态。

所以我想查询上面正确的数据。

在Excel中,我可以使用IF语句执行此操作。这在SQL Server中是否可行?

2 个答案:

答案 0 :(得分:1)

您可以使用CASE表达式:

SELECT Member,
       CASE WHEN Code = 1 THEN 'New Member'
            WHEN Code = 2 THEN 'Current Member'
            WHEN Code = 3 THEN 'Leave Member'
       END AS State
FROM yourTable

或者您也可以使用将代码映射到状态的内联CTE,并将其连接到原始表:

WITH cte AS (
    SELECT 1 AS Code, 'New Member' AS State
    UNION ALL
    SELECT 2, 'Current Member'
    UNION ALL
    SELECT 3, 'Leave Member'
)

SELECT t1.Member,
       t2.State
FROM yourTable t1
INNER JOIN cte t2
    ON t1.Code = t2.Code

答案 1 :(得分:0)

你可以使用case子句:

select Member
      ,Case code 
            when 1 then 'New Member'
            when 2 then 'Current Member'
            when 3 then 'Leave Member'
            else 'Unkown'
       end
from table1