在一个列中使用IN进行搜索

18 浏览
0 Comments

在一个列中使用IN进行搜索

我想使用SQL中的“IN”操作符,但是不是使用预定义的变量,而是使用表列。所以我写了下面的代码,但是无法让它工作。\n

SELECT * FROM searchWithinTable
WHERE searchBy IN (Test2C.col1)

\n非常感谢任何帮助!(我使用的是SQL Server)

0
0 Comments

问题的出现原因:在上述示例中,使用了子查询来搜索一个列,而不是使用静态值。这可能是因为需要使用动态的、基于其他列的条件来搜索数据。

解决方法:使用子查询来进行列的搜索。

解决方法示例:

SELECT EMPID, ENAME
FROM EMPLOYEES 
WHERE EMPID IN (SELECT EMPID FROM EMPLOYEES WHERE EMPID > 200)

以上是一个使用子查询来搜索EMPLOYEES表中EMPID列的示例。子查询的结果作为静态值被传递给主查询的IN子句,以筛选出符合条件的数据。这种方法可以帮助我们在搜索时使用动态条件,而不是固定的静态值。

0
0 Comments

问题的原因是无法直接将"column"作为一个列表传递给in条件,但可以传递该表/列的子查询。解决方法是使用子查询来实现。

例如,可以使用以下语句来解决问题:

SELECT * FROM searchWithinTable
WHERE searchBy IN (select col1 from Test2C)

为了避免错误的结果,应始终使用where <column name> is not null来进行判断。

有些时候,我们可能会感到愚蠢。但这确实有效,非常感谢你的帮助,再次感到自己很愚蠢,因为当我看到解决方案时,我为什么还会问这个问题...

非常感谢你的贡献,这也对我有所帮助!

在这种情况下,另一个选项是使用WHERE EXISTS(SELECT 1 FROM Test2C WHERE col1 = searchBy)

0