0
我有一個結果集,主要由值的列組成。但是,最左邊的列包含我用來有效標記每行的文本。當我ROLLUP,價值總,這是偉大的。我'No KS2'列中的文本會變成預期的NULL。有什麼我可以做的,用文本替換NULL例如'總'?SQL是否可以替換匯總中的值?
其他列中的所有NULL應該在那裏,我不需要替換那些。
這裏是我的結果集例如一個例子:
No KS2 6c/D- 6b/D 6a/D+
2a 1 NULL NULL
3c 3 NULL NULL
3b NULL 5 NULL
3a NULL NULL 6
NULL 4 5 6
這是我想做什麼:
No KS2 6c/D- 6b/D 6a/D+
2a 1 NULL NULL
3c 3 NULL NULL
3b NULL 5 NULL
3a NULL NULL 6
Total 4 5 6
編輯:
產生當KS2列結果集使用我已經用'No KS2'替換了NULL值。請參閱我GROUP BY下面的代碼:
GROUP BY
CASE Name
WHEN 'English' THEN
CASE WHEN [Ks2en] IS NULL OR [Ks2en]='' THEN
'No KS2'
WHEN [Ks2en] IN ('1a','1b','1c') THEN
'1'
ELSE
[Ks2en]
END
WHEN 'Mathematics' THEN
CASE WHEN [Ks2ma] IS NULL OR [Ks2ma]='' THEN
'No KS2'
WHEN [Ks2ma] IN ('1a','1b','1c') THEN
'1'
ELSE
[Ks2ma]
END
ELSE
CASE WHEN [Ks2av] IS NULL OR [Ks2av]='' THEN
'No KS2'
WHEN [Ks2av] IN ('1a','1b','1c') THEN
'1'
ELSE
[Ks2av]
END
END
WITH ROLLUP
編輯:這是不是重複的解決問題的辦法,這應該是沒有解決我的問題重複。我編輯了代碼來解釋差異。我已經有了一個case語句,用'No KS2'取代了我的KS2列中的NULL值。
是的,沿着正確的路線。但是,我已經有了一個case語句,用'No KS2'替代了KS2列中的NULL值。我將發佈我的GROUP BY代碼。 – Matt
用圓括號括起整個區域,並創建一個替代NULL的select語句。選擇* FROM(<您的完整查詢>)數據 – twoleggedhorse
關於您的編輯。它**是**重複的。替換'ROLLUP'值的正確方法是使用'GROUPING'功能。使用'ISNULL'或'COALESCE'會錯誤地將總標籤應用於分組值爲'NULL'的組。由於您沒有提供SQL小提琴,所以我不打擾您向您展示如何將'GROUPING'應用於您的情況(代碼太長以至於無法評論,我當然對從頭開始設置小提琴沒有興趣) –