如果第一列在 SQL (MS SQL) 中为空/空,如何从第二列中选择值?

Pra*_*rav 5 sql sql-server

有人可以帮我构建一个 SQL 查询,如果 column1 为空/空,我应该从 column2 获取值,如果 column2 也是空/空,我应该从 column3 获取值。

下面是我正在使用的表格

Price1   Price2   Price3

120

          140

                 160
Run Code Online (Sandbox Code Playgroud)

我正在寻找的输出是

Price

120

140

160
Run Code Online (Sandbox Code Playgroud)

我已经试过了

select Price1 as Price
from A
WHERE PRICE1 IS NOT NULL
UNION
SELECT PRICE2 as Price
from A
where PRICE1 is null
UNION 
select PRICE3 as id
from A
where PRICE2 is null

select COALESCE (PRICE1,PRICE2,PRICE3) from A

select ISNULL(PRICE1,ISNULL(PRICE2,PRICE3)) from A

select 
case when PRICE1 IS not null then PRICE1 when PRICE1 IS null then PRICE2 WHEN PRICE2 IS NULL then PRICE3 end PRICE id from A
Run Code Online (Sandbox Code Playgroud)

以上语法都没有得到我正在寻找的数据。请帮忙

Aer*_*aux 9

COALESCE像这样使用:

SELECT COALESCE(Price1, Price2, Price3) FROM A;
Run Code Online (Sandbox Code Playgroud)

但是,如果条目为空白而不是 NULL,这将不起作用。


For*_*esR 1

如果您认为有空字符串,您可以尝试:

select 
  case when coalesce(PRICE1, '') <> '' then PRICE1 
       when coalesce(PRICE2, '') <> '' then PRICE2 
       when coalesce(PRICE3, '') <> '' then PRICE3 
  end AS PRICE 
FROM A
Run Code Online (Sandbox Code Playgroud)