仅在匹配条件时选择列值

时间:2015-11-28 18:25:40

标签: sql sql-server tsql select

我有一个带有s1和s2列的表。

我的查询是:

SELECT s1, s2 
FROM myTable 
WHERE s1 = 1 OR s2 = 1 

使用样本数据:

s1 s2
------
1  2
2  1
1  1

我想得到:

s1    s2
--------
1   NULL
NULL   1
1      1

你知道一个简单的解决方案吗?

1 个答案:

答案 0 :(得分:2)

您可以使用CASE WHEN

SELECT CASE WHEN s1 = 1 THEN 1 ELSE NULL END AS s1,
  CASE WHEN s2 = 1 THEN 1 ELSE NULL END AS s2
FROM myTable
WHERE s1 = 1 OR s2 = 1