2017-06-20 81 views
0
Column1 Column2 Column3 
    1  Null  Null 
    Null  1   Null 
    Null  Null   1 

Sql查询从每列逐行获得1。Sql查询从每列中得到1行明智的

+0

我并不知道你的意思是“从每列行明智送1”。我假设你向我们展示的是*样本数据*?如果是这样,*预期结果*是什么?此外,可能需要向样本数据添加更多*变化*,因为它看起来非常统一。请[编辑]并添加更多关于你想要做什么的解释。 –

+0

我需要从一列中的上面的表中的所有1作为明智的输出行。下面的查询在行明智和列明智的完美工作。谢谢! –

+0

是的,但查询'从表中选择1'也是如此。我想确定您的样本数据未能显示的可能*变化*。 –

回答

5

随着COALESCE功能为每一行:

SELECT COALESCE(Column1, Column2, Column3) 
FROM ... 

而且随着MAX每列:

SELECT 
    MAX(Column1) as Column1, 
    MAX(Column2) as Column2, 
    MAX(Column3) as Column3 
FROM ... 
-1

随着NVL和NVL2函数为每一行

使用NVL2: -

select Nvl2(column1,column1,Nvl2(colume2,column2,column3)) from table; 

使用NVL: -

select nvl(nvl(column1,colume2),column3) from table; 
+0

'NVL'&'NVL2'是'ORACLE'函数,问题与'SQL Server'相关。 –