在通配符 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子句中尽量不要使用(代码片