我有一個包含多個專案的臨時表。
我想在第二個表中搜索多個列以獲取具有此專案但使用 LIKE 函式的行:
例如
#list = temp table with items
SELECT *
FROM table2
WHERE
ID like %#list%
OR Name like %#list%
OR Adress like %#list%
TSQL可以做到這一點嗎?
uj5u.com熱心網友回復:
我建議你使用EXISTS:
SELECT *
FROM table2 t2
WHERE EXISTS (SELECT 1
FROM #List L
WHERE t2.ID LIKE CONCAT('%',L.Item,'%') --Assumes ID is a string based data type
OR t2.Name LIKE CONCAT('%',L.Item,'%')
OR t2.Adress LIKE CONCAT('%',L.Item,'%')); --Address has 2 d's
uj5u.com熱心網友回復:
我找到了一個很好的答案。
將您要處理的字串放入帶有 '%text1%' 的 #temp 表中
| 專案 |
|---|
| %文本1% |
| %文本2% |
然后使用 JOIN 進行搜索,例如:
SELECT *
FROM table_1
INNER JOIN #temp
ON table_1.column1 like #temp.items
OR table_1.column2 like #temp.items
...
我認為它運作良好
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/405450.html
標籤:
