0
假設我有兩列整數A和B.現在我想從這些列中獲取不同的值,這意味着如果A和B都有1,我只需要1次。SQL Server - 來自多個(2)列的不同值
注:我不想獲取不同的行。我只想從該表中獲得唯一的整數值,可以是A或B
我可以在某個臨時表的一列中插入A和B的值,並在該列上執行一個不同的選擇。
任何更復雜(performancewise)?
假設我有兩列整數A和B.現在我想從這些列中獲取不同的值,這意味着如果A和B都有1,我只需要1次。SQL Server - 來自多個(2)列的不同值
注:我不想獲取不同的行。我只想從該表中獲得唯一的整數值,可以是A或B
我可以在某個臨時表的一列中插入A和B的值,並在該列上執行一個不同的選擇。
任何更復雜(performancewise)?
類似的東西應該工作,我想:
選擇所有不同的A的,那麼所有的不同B」 UNION ALL這兩套 選擇從工會的結果集DISTINCT SELECT DISTINCT * FROM ( SELECT DISTINCT甲FROM YourTable UNION ALL SELECT DISTINCT乙FROM YourTable )
隨着盧卡斯的幫助下,你可以簡單的寫:
SELECT A FROM YourTable
UNION
SELECT B FROM YourTable
,因爲他理所當然地指出,正規的UNION收益沒有重複。你甚至不需要在你的單個SELECT上有一個DISTINCT子句 - 很巧妙!謝謝,Lukáš!
馬克
如果你改變'UNION ALL'到'UNION',就可以避免外部查詢爲'UNION'本身將返回唯一不同的值。 – 2009-10-10 07:39:07
@Lukas:確實很聰明 - 完全正確! :-) – 2009-10-10 07:40:31
你甚至不需要在內部查詢上使用'DISTINCT'。 – 2009-10-10 07:41:26