我正在尝试根据项目在同一个表格中的位置创建搜索。
因此,如果我为列a123
输入BoxNo
之类的值,则会选择列Goeswith
中同样为a123
的所有值。以下代码是我的尝试,但不起作用。
SELECT *
FROM Equipment
WHERE (BoxNo LIKE '%') = GoesWith
谢谢
答案 0 :(得分:2)
也许你的意思,
SELECT *
FROM tableName
WHERE 'a123' IN (BoxNo, GoesWith)
或者这个,
SELECT *
FROM tableName
WHERE BoxNo LIKE '%a123%' AND
BoxNo = GoesWith
答案 1 :(得分:2)
如果你想要BoxNo和GoesWith的所有行具有相同的值,那么它就是这样的:
SELECT *
FROM Equipment
WHERE BoxNo = GoesWith
答案 2 :(得分:1)
如果您要在a123
列中搜索BoxNo
之类的所有项目:
SELECT * From Equipment WHERE BoxNo LIKE '%a123%'
如果你想在两个栏目中搜索a123
:
DECLARE @Search Varchar(50) = 'a123'
SELECT * From Equipment WHERE BoxNo = @Search AND GoesWith = @Search
答案 3 :(得分:1)
我怀疑你的意思是'以及',因此OR:
从BoxNo ='a123'或GoesWith ='a123'的设备中选择*
如果您需要进一步限制添加......,请小心添加包围。
答案 4 :(得分:1)
您是否正在寻找所有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。*,您可以获得单个匹配的列表。