對不起,如果標題不好。但我不知道如何解決這個問題。 我一直在努力與sql中的查詢。我不知道這個問題是否曾被問過。但我需要得到第一列不是空的。我有這樣一個表:如何獲得非空的第一列
ID 0 1 2 3 4 5 6 7 8 9
59 NULL NULL NULL NULL NULL NULL NULL NULL NULL text1
185 NULL NULL NULL NULL NULL text1 text2 text3 text4 text5
428 NULL NULL NULL NULL NULL NULL text1 text2 text3 text4
53 NULL NULL NULL NULL NULL NULL NULL NULL text1 text2
452 NULL NULL NULL NULL NULL NULL NULL NULL NULL text1
267 text1 text2 text3 text4 text5 text6 text7 text8 text9 text10
而且我想輸出是這樣的:
ID 0 1 2 3 4 5 6 7 8 9
59 text1 NULL NULL NULL NULL NULL NULL NULL NULL NULL
185 text1 text2 text3 text4 text5 NULL NULL NULL NULL NULL
428 text1 text2 text3 text4 NULL NULL NULL NULL NULL NULL
53 text1 text2 NULL NULL NULL NULL NULL NULL NULL NULL
452 text1 NULL NULL NULL NULL NULL NULL NULL NULL NULL
267 text1 text2 text3 text4 text5 text6 text7 text8 text9 text10
的ID
列是每行唯一的。
我的失敗嘗試是創建一個scalared函數併爲每列運行它。功能如下:
CREATE FUNCTION GetCulumnsThatIsNotNull
(
@column1 VARCHAR(500),
@column2 VARCHAR(500),
@column3 VARCHAR(500),
@column4 VARCHAR(500),
@column5 VARCHAR(500),
@column6 VARCHAR(500),
@column7 VARCHAR(500),
@column8 VARCHAR(500),
@column9 VARCHAR(500),
@column10 VARCHAR(500)
)
RETURNS VARCHAR(500)
AS
BEGIN
RETURN
COALESCE(@column1,
COALESCE(@column2,
COALESCE(@column3,
COALESCE(@column4,
COALESCE(@column5,
COALESCE(@column6,
COALESCE(@column8,
COALESCE(@column9,
COALESCE(@column10,null)))))))))
END
但有了這個功能的問題是,它只是挑選那些null
第一列。所以結果是這樣的:
ID 0 1 2 3 4 5 6 7 8 9
59 text1 text1 text1 text1 text1 text1 text1 text1 text1 text1
185 text1 text1 text1 text1 text1 text1 text1 text1 text1 text1
428 text1 text1 text1 text1 text1 text1 text1 text1 text1 text1
53 text1 text1 text1 text1 text1 text1 text1 text1 text1 text1
452 text1 text1 text1 text1 text1 text1 text1 text1 text1 text1
267 text1 text1 text1 text1 text1 text1 text1 text1 text1 text1
有什麼建議嗎?
編輯
這將無法正常工作醚。
COALESCE(pvt.[0],
pvt.[1],
pvt.[2],
pvt.[3],
pvt.[4],
pvt.[5],
pvt.[6],
pvt.[7],
pvt.[8],
pvt.[9])
因爲它會導致相同的輸出
採取這裏http://msdn.microsoft.com/en-us/library/ms190349.aspx看看第一個例子似乎是你想要的。 – 2012-04-12 13:24:15
已更新問題 – Arion 2012-04-12 13:31:13
**這是錯誤數據結構的指示**如果您的數據元素表示它們看起來是一樣的東西(即0-9都表示類似的東西),則應將其歸一化,這種情況下,像這樣的查詢將是非常微不足道的。 – JNK 2012-04-12 13:31:16