我想在两张桌子上进行LIKE搜索。一个表具有一列搜索项,另一个表具有用于执行LIKE搜索的列。以下是表格:
create table #TableA
(
UserName Varchar(50)
)
create table #TableB
(
Department Varchar(50),
Keyword Varchar(50)
)
Insert Into #TableA VALUES('bob_sales')
Insert Into #TableA VALUES('mary_accounting')
Insert Into #TableA VALUES('sammi_accountant')
Insert Into #TableA VALUES('fred_bestSellerEver123')
Insert Into #TableB VALUES('Accounting', 'accounting')
Insert Into #TableB VALUES('Accounting', 'accountant')
Insert Into #TableB VALUES('Sales', 'sales')
Insert Into #TableB VALUES('Sales', 'seller')
我想运行一个使用 LIKE%keyword%的查询并给我:
bob_sales | Sales
mary_accounting | Accounting
sammi_accountant | Accounting
fred_bestSellerEver123 | Sales
答案 0 :(得分:1)
<强> SqlFiddleDemo 强>
SELECT
ta.UserName
,tb.Department
FROM TableA ta
JOIN TableB tb
ON ta.UserName LIKE '%' + tb.[keyword] + '%'
/* If needed add COLLATE Latin1_General_CI_AS */
<强>说明:强>
如果您的数据可能包含以下内容:sammi_accountant_accounting
,则应将DISTINCT
添加到SELECT
语句,以避免重复。
对于bob_sales_accounting
,bob会出现两次,因为它属于2组。
答案 1 :(得分:1)
另一种没有加入的方法,只是为了好玩:
attributedTitle