簡體   English   中英

SQL從表中選擇,其中列包含特定的字符串

[英]SQL select from table where column contains specific strings

我有一個表,其中包含需要搜索的字符串(如下圖所示)

搜索表 表A

之后,我有一個表來存儲數據(如下面的圖片所示)

在此處輸入圖片說明 表B

搜索功能的作用是僅在記錄包含TableA中的字符串的情況下才從TableB中選擇[即,預期結果應類似於image(TableC)

在此處輸入圖片說明 表C

我嘗試使用下面的SQL,但是嘗試運行[ Incorrect syntax near 'select' ]時,SQL出現了一些錯誤,而且SQL有點復雜,有什么方法可以使SQL更簡單嗎?

select * from TableB a 
where exists 
    (select colA from TableB b 
        where b.colA = a.ColA and Contains (b.ColA, select searchCol from TableA))

請試試:

select 
  a.* 
From tblA a inner join tblB b 
    on b.Col like '%'+a.Col+'%'

SQL小提琴演示

其中之一應該根據我的工作

SELECT b.colA 
FROM TableB b join TableA a
WHERE colA like '%' + a.ColA + '%';


SELECT b.colA
FROM TableB b join TableA a
WHERE INSTR(b.colA, '{' + a.colA + '}') > 0;
SELECT b.* FROM tblA a,tblB b
WHERE PATINDEX('%'+a.Col+'%',b.Col)>0

SQL FIDDLE DEMO

我已經搜索了PATINDEX和LIKE之間的性能差異,但沒有得出確切的答案,有人說當不能使用索引時PATINDEX更快,這是當要搜索的模式包含在通配符中時,例如'%'+ a.Col +' %',而其他帖子提到他們可以達到類似的效果。

也許有些SO SQL向導可以看水晶球並向我們展示光

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM