1

我有 1 + 5 列的表格,如下所示。

MemberID ==> 代表 Member_ID

值 1 ==> 代表值 1

Value2 ==> 代表 Value2

Value3 ==> 代表 Value3

Value4 ==> 代表 Value4

Value5 ==> 代表 Value5

在任何给定时间,只有一列不为空(在 Value1、Value2、Value3、Value4 和 Value5 的集合中)。

我想运行一个查询,其中我将结果作为 Member_ID, Value ,其中值是来自 5 个值列中的任何一个的非空值。

如何在 TSQL 中做到这一点?谢谢你,史密斯

4

2 回答 2

4
select memberID, coalesce(value1, value2, value3, value4, value5)
from myTable

如果存在所有值都可能为空的可能性,您可能希望默认为一个值。

select memberID, coalesce(value1, value2, value3, value4, value5, <default>)
from myTable
于 2012-07-23T21:26:19.677 回答
0

你可以试试case语句

select memberID,
       case
           when Value1 is not null then
               Value1
           when Value2 is not null then
               Value2  
           when Value3 is not null then
               Value3
           when Value4 is not null then
               Value4
           when CValue5 is not null then
               Value5
       end as [Value]
from myTable

如果所有值都为空,还可以在 case 语句中添加“else”以返回默认值。

于 2015-03-19T10:10:46.267 回答