在通配符 where 子句中使用 Select 语句

Posted

技术标签:

【中文标题】在通配符 where 子句中使用 Select 语句【英文标题】:Use a Select Statement within a wildcard where clause 【发布时间】:2010-06-18 20:18:46 【问题描述】:

在 MS SQL 2005 中工作,我想在通配符 where 子句中使用 select 语句,如下所示:

SELECT text
FROM table_1
WHERE ID LIKE '%SELECT ID FROM table_2%'

我正在数据库中保存的大量文本中查找产品 ID。通配符子句中的 SELECT 语句将返回 50+ 行。上面的陈述显然不是要走的路。有什么建议吗?

【问题讨论】:

你试过用 IN 子句代替 LIKE 吗? 我尝试了不起作用的 IN 子句。再说一次,我没有正确地写声明。通配符子句中的 SELECT 语句将返回 50 多个结果,这可能会稍微改变每个人的答案。 【参考方案1】:

您可以根据table_2进行连接并构造类似的字符串。

SELECT * FROM table_1 t1
INNER JOIN table_2 t2 ON t1.ID LIKE '%' + CONVERT(VARCHAR, t2.ID) + '%'

【讨论】:

以上是关于在通配符 where 子句中使用 Select 语句的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL:使用 LIKE、ANY 和通配符的 Where 子句

在雄辩的 Where 子句中使用类似通配符的语法在两个字符串之间进行搜索

sql面试题_SQl优化技巧_1注意通配符中like的使用,百分号放后面_2避免在where子句中对字段进行函数操作_3在子查询当中,尽量用exists代替in_4where子句中尽量不要使用(代码片

学习笔记SQL语句练习

在 WHERE 子句中使用 SELECT 语句

在 WHERE 子句中使用 SELECT 查询