2017-03-07 61 views
0

如何在文本字符串中找到匹配項。tsql如何在文本字符串中找到姓氏

例如。我在Col1中有一個「史密斯」的姓氏。

我在Col2中有一個「A B Smith先生和J Bike太太」的組名。

如何搜索組名以查找「Smith」的匹配項?

組名以上述格式手動輸入到CRM系統中,因此我無法更改此設置。

感謝

+0

提示:這是有幫助的標記同時與相應的軟件數據庫的問題(MySQL和甲骨文,DB2 ,...)和版本,例如'的SQL服務器2014'。語法和功能的差異往往會影響答案。 – HABO

回答

0

你需要的CASECHARINDEX組合:

SELECT 
    CASE 
     WHEN CHARINDEX(Col1, Col2, 0) > 0 
      THEN 'Exists' 
     ELSE 'Not Exists' 
    END [Does Col1 Exist in Col2] 
FROM Table 

CASEREPLACE的組合:

SELECT 
    CASE 
     WHEN LEN(COL2) > LEN(REPLACE(COL2, COL1, '')) 
      THEN 'Exists' 
     ELSE 'Not Exists' 
    END [Does Col1 Exist in Col2] 
FROM Table 

,或者,如果你只想其中Col1中的值col2的存在,那麼結果:

SELECT 
    Col1 
    , Col2 
FROM Table 
WHERE LEN(COL2) > LEN(REPLACE(COL2, COL1, '')) 
+0

嗨,作品的第二種說法類型,但問題是,如果任何文本匹配,它帶回「存在」。所以舉個例子,如果我只輸入「m」這個字母,它就是因爲「Mr」而存在的。如果我輸入「Z」,則不存在。 – user114790

+0

我不明白,聲明有什麼問題?這是正確的,根據您的要求。也許你有你沒有發佈在你的問題中的附加條件/規則。 –

+0

最後的聲明起作用。非常感謝你。 – user114790

0

如果你想找到所有col2的,你可以使用百分號和LIKE關鍵字史密斯搜索字符串:

SELECT Col2 
FROM [TABLENAME] 
WHERE Col2 LIKE '%Smith%' 
+0

嗨,我需要驗證col1中保存的數據與col2中字符串的任何部分匹配,所以不明白這是如何工作的? – user114790

相關問題