我試圖根據項目在同一個表中放在一起的位置來創建搜索。TSQL選擇其中一列等於另一列的地方
因此,如果我爲BoxNo
列輸入類似a123
的值,則選擇列Goeswith
中的所有值,這些值也是a123
。下面的代碼是我的嘗試,但不起作用。
SELECT *
FROM Equipment
WHERE (BoxNo LIKE '%') = GoesWith
感謝
我試圖根據項目在同一個表中放在一起的位置來創建搜索。TSQL選擇其中一列等於另一列的地方
因此,如果我爲BoxNo
列輸入類似a123
的值,則選擇列Goeswith
中的所有值,這些值也是a123
。下面的代碼是我的嘗試,但不起作用。
SELECT *
FROM Equipment
WHERE (BoxNo LIKE '%') = GoesWith
感謝
也許你的意思是,
SELECT *
FROM tableName
WHERE 'a123' IN (BoxNo, GoesWith)
也許這一點,
SELECT *
FROM tableName
WHERE BoxNo LIKE '%a123%' AND
BoxNo = GoesWith
如果你要搜索的BoxNo
柱像a123
所有項目:
SELECT * From Equipment WHERE BoxNo LIKE '%a123%'
如果你想在兩列搜索a123
作者:
DECLARE @Search Varchar(50) = 'a123'
SELECT * From Equipment WHERE BoxNo = @Search AND GoesWith = @Search
如果你想去的地方BoxNo和GoesWith具有相同值的所有行則是這樣的:
SELECT *
FROM Equipment
WHERE BoxNo = GoesWith
我懷疑你意味着 '以及',因此OR:
SELECT * FROM設備,其中BoxNo = 'A123' OR GoesWith = 'A123'
如果您需要進一步添加約束條件,請注意添加包圍...
您是否在尋找所有Box記錄中包含其他條目的普遍匹配? 如果是這樣,那麼你需要一個自連接(使用別名來識別記錄):
select
b.BoxNo,
g.GoesWith
from
equipment as b
inner join equipment as g on b.BoxNo = g.GoesWith
這標識都具有匹配盒(和他們一起去的東西)的記錄。 更改爲左連接以包含不匹配的記錄。 如果Box有多個GoesWith條目,但通過返回DISTINCT b。*或DISTINCT g。*,您可以獲得多個匹配,您可以獲得單個匹配的列表。
'選擇*從設備的WHERE BoxNo = GoesWith'。 – danihp 2013-03-02 15:05:39
你的問題很混亂,你可以給樣品記錄與期望的結果? – 2013-03-02 15:10:59