【问题标题】:Use a Select Statement within a wildcard where clause在通配符 where 子句中使用 Select 语句
【发布时间】: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 多个结果,这可能会稍微改变每个人的答案。

标签: sql sql-server sql-server-2005 query-optimization


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-19
    • 1970-01-01
    • 2017-06-19
    • 1970-01-01
    • 2015-02-23
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    相关资源
    最近更新 更多