簡體   English   中英

如何從一組列中選擇非NULL值?

[英]How to pick the non-NULL value from a set of columns?

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

MemberID ==>表示Member_ID

Value1 ==>表示Value1

Value2 ==>表示Value2

Value3 ==>表示Value3

Value4 ==>表示Value4

Value5 ==>表示Value5

在任何給定時間只有一列不為null(在Value1,Value2,Value3,Value4和Value5的集合中)。

我想運行一個查詢,其中我得到的結果為Member_ID,Value,其中值為來自5個Value列中任何一個的非null值。

如何在TSQL中做到這一點? 謝謝你,史密斯

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

如果存在所有值都可能為null的可能性,您可能希望默認為值。

select memberID, coalesce(value1, value2, value3, value4, value5, <default>)
from myTable

您可以嘗試一個案例陳述

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

如果所有值都為null,還可以在case語句中添加“else”以返回默認值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM