我正在尝试根据项目在同一个表中的位置创建搜索。
因此,如果我输入一个类似a123
for column的BoxNo
值,那么该列中的所有值Goeswith
也会a123
被选中。下面的代码是我的尝试,但不起作用。
SELECT *
FROM Equipment
WHERE (BoxNo LIKE '%') = GoesWith
谢谢
我正在尝试根据项目在同一个表中的位置创建搜索。
因此,如果我输入一个类似a123
for column的BoxNo
值,那么该列中的所有值Goeswith
也会a123
被选中。下面的代码是我的尝试,但不起作用。
SELECT *
FROM Equipment
WHERE (BoxNo LIKE '%') = GoesWith
谢谢
如果您想要 BoxNo 和 GoesWith 具有相同值的所有行,那么它是这样的:
SELECT *
FROM Equipment
WHERE BoxNo = GoesWith
也许你的意思是,
SELECT *
FROM tableName
WHERE 'a123' IN (BoxNo, GoesWith)
或者这个,
SELECT *
FROM tableName
WHERE BoxNo LIKE '%a123%' AND
BoxNo = GoesWith
如果要搜索列a123
中的所有项目BoxNo
:
SELECT * From Equipment WHERE BoxNo LIKE '%a123%'
如果要a123
在两列中搜索:
DECLARE @Search Varchar(50) = 'a123'
SELECT * From Equipment WHERE BoxNo = @Search AND GoesWith = @Search
我怀疑您的意思是“以及”,因此 OR:
从 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.* 您可以获得单个匹配项的列表。