2012-12-06 212 views
-1

我需要幫助來返回查詢中的值。再看看我下面的例子,其中在A列中的值都與B欄:比較兩列中的值

Column A    Column B 
---------   --------- 
45008    AQZ45008D 
45008    ABC12345 
45007    45007AX 
45007    11652019 
45007    JMD45007 

所有我需要的是回到地方在A列的值被發現在B列中的某個地方行因此,在這個例子中,行1, 3和5需要退回。

我希望這是一個明顯的例子。謝謝你的幫助!

+0

[什麼你有沒有試過](http://whathaveyoutried.com)?請發佈查詢並解釋您卡住的位置。 – Oded

回答

5

你可以試試:

SELECT * 
FROM Table 
WHERE ColumnB LIKE '%' + ColumnA + '%' 

我假設這兩列是VARCHAR。否則,您可能需要對其進行鑄造。

+1

+1如果在模式語法中包含含有重要字符的'ColumnA'的任何危險,也可以使用'WHERE CHARINDEX(ColumnA,ColumnB)> 0'。 –

+0

謝謝你的工作。我從代碼開始,但是,如果列顛倒了,並且錯過了大部分數據。感謝幫助! –

0

不知道你想要的值並行匹配,這將是最容易的,但如果ColumnB任何價值可與ColumnA

任何值匹配使用嘗試:

SELECT DISTINCT ColumnA 
FROM Table t 
WHERE EXISTS (SELECT TOP 1 ColumnB FROM table t2 WHERE t2.ColumnB LIKE '%' + t.ColumnA + '%')