您可以创建一个XML
,将空格用作令牌,然后使用.nodes()
从xml
列中获取单词并将它们进行比较。像这样的东西
WITH Table1 as
(
SELECT 1 as ID,'ABC School System' as col1, 'Worked in Private school' as col2
), CTE2 as
(
SELECT M.id,c.value('text()[1]','VARCHAR(100)') COLLATE Latin1_General_CI_AS as col1val,c2.value('text()[1]','VARCHAR(100)') COLLATE Latin1_General_CI_AS as col2val
FROM
(
SELECT id,
CONVERT(XML,'<i>' + REPLACE(col1,' ','</i><i>') + '</i>') col1,
CONVERT(XML,'<i>' + REPLACE(col2,' ','</i><i>') + '</i>') col2
FROM Table1
)M
CROSS APPLY col1.nodes('i') as t(c)
CROSS APPLY col2.nodes('i') as t2(c2)
)
SELECT ID,col1val,col2val
FROM CTE2
WHERE col1val = col2val
AND LEN(col1val) > 3
AND LEN(col2val) > 3
你到目前为止尝试过什么?为什么sql server 2008和sql server 2012都被标记? – ughai
我知道“like”的基本字符串命令,但在这种情况下没有帮助。 – Tayyab
我有两个版本,Server 2008和2012.所以这两者都适合我。 – Tayyab