仅当列不为NULL时才连接列

Dan*_*rio 4 sql t-sql sql-server sentence

我有一个像这样的SQL Server表:

-------------------------------------------------------------------
PERSON
-------------------------------------------------------------------
   NAME   |   PHONE   |   PHONE1   |   PHONE2   |   PHONE_CONCAT  
-------------------------------------------------------------------
   Name1  |   12345   |   Null     |   Null     |   Null
   Name2  |   Null    |   54774    |   Null     |   Null
   Name3  |   Null    |   Null     |   77841    |   Null
-------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

我想要做的是,当其中一列的值为!= null时,将PHONE,PHONE1和PHONE2列连接到PHONE_CONCAT.因此,在这种情况下,PHONE_CONCAT列的最终值将是:

------------------
PERSON
------------------
   PHONE_CONCAT  
------------------
   12345
   54774
   77841
 ------------------
Run Code Online (Sandbox Code Playgroud)

你可以帮我做一下这个动作吗?

我想更新PHONE_CONCAT值,因此我需要对表中的每一行执行更新.

Gor*_*off 8

这是你想要的吗?

select coalesce(t.phone, t.phone1, t.phone2) as phone_concat
from t;
Run Code Online (Sandbox Code Playgroud)

这将返回第一个不是的电话号码NULL.这似乎是获得理想结果的最简单方法.