【问题标题】:query lookup table without key join没有键连接的查询查找表
【发布时间】:2021-12-21 02:01:27
【问题描述】:

我想创建一个表列表来查找另一个表。例如

表 A

AMOUNT DESCRIPTION
1000 i want eat
2000 i want sleep

表 b(查找)

SEARCH Activity
eat go to eat
sleep go to sleep

预期结果

Amount Activity
1000 go to eat
2000 go to sleep

我试过这样的查询,但还是不行

SELECT amount, IIF(description like '%(select search from table b)%',(select activity from table b), null) as activity
FROM table a

【问题讨论】:

  • 对于这种特殊情况,您需要编写一个将'i want to eat' 转换为'eat' 的字符串表达式。这显示了一些如何做到这一点的例子。 stackoverflow.com/questions/58438406/…
  • 为什么不使用标量值函数,在表 B 中以描述为参数进行搜索,如果匹配则返回相应的活动?

标签: sql sql-server tsql sql-server-2012


【解决方案1】:

您也可以使用常规连接

SELECT a.amount, b.activity 
FROM tableA a
JOIN lookupTable b on a.description like '%' + b.search + '%'

【讨论】:

    【解决方案2】:

    这是一种方法,但正如 cmets 所说,您必须考虑您真正想要如何“解析”A.Description

    select A.Amount,B.Activity
    from 
        tableA A
        inner join tableB B on B.Search = stuff(A.Description,1,7,'') -- remove first 7 chars
    

    【讨论】:

      猜你喜欢
      • 2016-01-14
      • 2016-03-20
      • 2017-03-24
      • 2021-07-25
      • 2016-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多