【问题标题】:How to write a SQL like query with table column?如何使用表列编写类似 SQL 的查询?
【发布时间】:2016-08-25 19:02:16
【问题描述】:

如何用表列编写类似 SQL 的查询?

我有两个表 table1 和 table2。

Table1 has Notes
Table2 has billid

我们有大约 100 张满足 Like 条件的钞票。

现在,我在列上写静态值。

我应该如何通过在 Like 条件中传递 Column 来编写 Like Query。

select * from table1
where Notes like select billid from table2

【问题讨论】:

  • 有点不清楚。您能否添加一些数据示例和所需结果?
  • 请显示适当的数据样本和预期结果
  • column1 的值是否与 Billid 相同
  • @Javier,我已经修改了脚本。有帮助吗?我只需要动态的条件。现在,我按值传递一个值
  • 刚刚发现 StackOverflow(以良好的品味和形式)不允许 lmgtfy。

标签: sql sql-server sql-server-2008


【解决方案1】:

您在此处需要JOIN

如果在Table1.Column1 中找到确切的BillID,则:

select table1.*
from table1 
    INNER JOIN table2 ON
        table1.column1=table2.billid

如果您确实不需要结果集中 table2 中的任何记录,您也可以在 WHERE 子句中使用 IN 来执行此操作:

select *
from table1
where column1 in (SELECT billid FROM table2);

这与您尝试查询的目标非常接近。

最后,如果您实际上是指LIKE,这在 SQL 术语中更像是通配符匹配,其中column1 只需包含billid,然后返回连接:

select table1.*
from table1 
    INNER JOIN table2 ON
        table1.column1 LIKE '%' + table2.billid + '%'

【讨论】:

    【解决方案2】:

    试试这个。如果存在来自 table2 的任何匹配项,则从 table1 中选择一个 raw

    select *
    from table1 
    where exists (select billid 
                  from  table2 
                  where table1.column1 LIKE '%' + table2.billid + '%')
    

    【讨论】:

      猜你喜欢
      • 2014-07-29
      • 1970-01-01
      • 2020-01-23
      • 2014-09-08
      • 1970-01-01
      • 2012-11-13
      • 1970-01-01
      • 1970-01-01
      • 2020-10-04
      相关资源
      最近更新 更多