我的sql server 2012中有两个表。第一个表是tblInvoiceChange_Log,它有这样的数据,
log_id log_date description
------------------------------------------------
123 2014-05-16 05:20:39.393 BL1202 locked
124 2014-08-21 03:12:05.143 BL0293 unlocked
- - -
- - -
还有另一个表tblInvoice,其中包含这样的数据,
Bill_Number created_by_id created_by_name
-------------------------------------------------
BL1202 3081 ABC
BL0293 5236 XYZ
- - -
- - -
我想获取所有日志信息,其中“description”列的子字符串与另一个表的“Bill_Number”列匹配。
我尝试了以下查询,但它给出了一个错误,说“子查询返回的值超过1。当子查询跟随=,!=,<,< =,>,> =或时,这是不允许的当子查询用作表达式时。“
select * from tblInvoiceChange_Log (nolock)
where description like '%' + (select distinct Bill_Number
from tblInvoice (nolock)) + '%'
我怎样才能做到这一点?任何想法将不胜感激。
感谢。
答案 0 :(得分:0)
您可以在加入中使用like
:
select *
from tblInvoiceChange_Log (nolock) a
join (select distinct Bill_Number from tblInvoice (nolock)) b
on a.description like '%' + b.Bill_Number + '%'