我的查詢是相當類似的工作如下:最簡單的方法來消除SELECT DISTINCT中的空值?
CREATE TABLE #test (a char(1), b char(1))
INSERT INTO #test(a,b) VALUES
('A',NULL),
('A','B'),
('B',NULL),
('B',NULL)
SELECT DISTINCT a,b FROM #test
DROP TABLE #test
結果是,勿庸置疑,
a b
-------
A NULL
A B
B NULL
輸出我想在現實中看到的是:
a b
-------
A B
B NULL
也就是說,如果一個列在某些記錄中有一個值,但在其他記錄中沒有,那麼我想要爲該列拋出NULL爲空的行。但是,如果列的所有記錄都有NULL值,我想保留該NULL。
在單個查詢中這樣做最簡單/最優雅的方式是什麼?
我有一種感覺,如果我在星期五的下午沒有精疲力竭,這將會很簡單。
可以列的值'了'有比'B'一個非空值嗎?如果是這樣的話,你是否期望得到兩個值? – 2012-04-20 23:01:35
對不起,我今天剛回來。對於組中的所有記錄,每列都是:100%填充單個值,100%填充NULL或部分填充單個值並部分填充NULL。例如:(1,2,NULL),(1,2,NULL),(1,NULL,NULL)應該減少爲(1,2,NULL)。 – 2012-04-23 14:23:57