2017-02-16 19 views
0
Primary Secondary 
----------------------------------- 
UST   MUN 
Data  NULL 
Tele  Data 
Sun   Data 
RMDS  Data 
Data  NULL 
Mor   NULL 
UST   NULL 
Data  Bridge 

我想檢查「Secondary」的值是否已經在「primary」中,那麼它應該是「primary」,但如果它不是「primary」值,它必須在「次要「列。在同一表格中應用條件

在這裏,我想輸出:

Primary Secondary 
------ ----------- 
UST  MUN 
Data  Bridge 
Tele 
Sun 
RMDS 
Mor 
Bridge 
+1

它看起來像你正在嘗試使用表作爲電子表格。儘管表面上看起來相似,但這並不會奏效。特別是,表中的行和列是非常不同的東西。 –

+0

如果你已經爲此編寫了代碼,你無法工作,那麼你來對地方了。只需將您的代碼(或相關部分)添加到問題中,因爲沒有這些,我們就無法提供幫助。請參閱[問] –

+0

以前我做了兩個聯合,但我給了我一個列下的數據,但我想有像我提供的數據,但我沒有得到任何線索做到這一點,因爲即時新以sql –

回答

0

Yey - 你來了!

你已經達到了足夠的經驗與掙扎自聯接在SQL ..這是在你的職業生涯發展的一個重要里程碑

請 - 使用下面的文章(這是真正偉大的),以找出如何第二場鏈接到你的一次場機智公頃自我加入..而這基本上:)

鏈接:https://blog.sqlauthority.com/2010/07/08/sql-server-the-self-join-inner-join-and-outer-join/

+0

警告:建議不要使用僅鏈接回答,皺眉並且往往會降低投票率。 –

+0

我知道..但我的評論它太過沉重是一個..評論... :( – ymz

0

假設主要在橋下不應該存在於輸出。如下請見。

SELECT [primary],ISNULL(MAX([Secondary]),'') as [Secondary] 
FROM 
(SELECT T1.[primary],T2.[Secondary] 
FROM 
(SELECT [primary] 
FROM #T) T1 
JOIN 
(SELECT [primary],[Secondary] 
FROM #T WHERE [Secondary] NOT IN (SELECT [primary] 
FROM #T)) T2 
ON T1. [primary] = T2.[primary] 
GROUP BY T1.[primary],T2.[Secondary] 

UNION 

SELECT ONE,NULL FROM 
(SELECT [Primary] AS ONE FROM #T 
EXCEPT 
SELECT [Secondary] FROM #T) X) M 
GROUP BY [Primary] 
0

溶液的線索是使用Join

完全外部聯接(類型的連接)是你想要的那麼近形式。

SELECT 
* 
FROM 
(select distinct [Primary] from test) t1 
Full outer JOIN 
(select distinct Secondary 
from test where Secondary not in (select distinct [Primary] from test)) t2 
ON t1.[Primary] = t2.Secondary 

結果: -

Primary Secondary 
NULL Bridge 
Data NULL 
Mor  NULL 
NULL MUN 
RMDS NULL 
Sun  NULL 
Tele NULL 
UST  NULL 
相關問題