如何在文本字符串中找到匹配项。tsql如何在文本字符串中找到姓氏
例如。我在Col1中有一个“史密斯”的姓氏。
我在Col2中有一个“A B Smith先生和J Bike太太”的组名。
如何搜索组名以查找“Smith”的匹配项?
组名以上述格式手动输入到CRM系统中,因此我无法更改此设置。
感谢
如何在文本字符串中找到匹配项。tsql如何在文本字符串中找到姓氏
例如。我在Col1中有一个“史密斯”的姓氏。
我在Col2中有一个“A B Smith先生和J Bike太太”的组名。
如何搜索组名以查找“Smith”的匹配项?
组名以上述格式手动输入到CRM系统中,因此我无法更改此设置。
感谢
你需要的CASE
和CHARINDEX
组合:
SELECT
CASE
WHEN CHARINDEX(Col1, Col2, 0) > 0
THEN 'Exists'
ELSE 'Not Exists'
END [Does Col1 Exist in Col2]
FROM Table
或CASE
和REPLACE
的组合:
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, ''))
嗨,作品的第二种说法类型,但问题是,如果任何文本匹配,它带回“存在”。所以举个例子,如果我只输入“m”这个字母,它就是因为“Mr”而存在的。如果我输入“Z”,则不存在。 – user114790
我不明白,声明有什么问题?这是正确的,根据您的要求。也许你有你没有发布在你的问题中的附加条件/规则。 –
最后的声明起作用。非常感谢你。 – user114790
如果你想找到所有col2的,你可以使用百分号和LIKE关键字史密斯搜索字符串:
SELECT Col2
FROM [TABLENAME]
WHERE Col2 LIKE '%Smith%'
嗨,我需要验证col1中保存的数据与col2中字符串的任何部分匹配,所以不明白这是如何工作的? – user114790
提示:这是有帮助的标记同时与相应的软件数据库的问题(MySQL和甲骨文,DB2 ,...)和版本,例如'的SQL服务器2014'。语法和功能的差异往往会影响答案。 – HABO