2017-06-20 80 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'相關。 –