1

我正在尝试根据项目在同一个表中的位置创建搜索。

因此,如果我输入一个类似a123for column的BoxNo值,那么该列中的所有值Goeswith也会a123被选中。下面的代码是我的尝试,但不起作用。

SELECT *   
FROM Equipment 
WHERE (BoxNo LIKE '%') = GoesWith 

谢谢

4

5 回答 5

3

如果您想要 BoxNo 和 GoesWith 具有相同值的所有行,那么它是这样的:

SELECT *
FROM Equipment
WHERE BoxNo = GoesWith
于 2013-03-02T15:11:59.273 回答
2

也许你的意思是,

SELECT  *
FROM    tableName
WHERE   'a123' IN (BoxNo, GoesWith)

或者这个,

SELECT  *
FROM    tableName
WHERE   BoxNo LIKE '%a123%' AND
        BoxNo = GoesWith
于 2013-03-02T15:06:38.343 回答
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
于 2013-03-02T15:08:27.860 回答
1

我怀疑您的意思是“以及”,因此 OR:

从 BoxNo='a123' OR GoesWith='a123' 的设备中选择 *

如果您需要添加一些进一步的约束,请小心添加括号...

于 2013-03-02T15:12:19.167 回答
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.* 您可以获得单个匹配项的列表。

于 2016-09-28T14:06:07.610 回答