【发布时间】:2016-08-20 00:19:16
【问题描述】:
我在表 tblCountry 中有一个字符串列国家,例如“印度、澳大利亚、美国、英国”。 现在无论提供什么序列,例如“美国、德国、英国、印度、俄罗斯”,我都必须拆分 以空间为基础的字符串,然后显示列国家值中甚至存在单个国家的所有结果。 到目前为止,我通过以下查询实现了这一点。现在困难的部分是我必须首先显示结果 具有最大匹配列值。
例如,如果下面是列值:
'India, Austrailia, US, Italy'
'India, Malaysia, Austrailia, US, UK'
'UK, Austrailia, France, Korea, India'
'China, India, US, UK'
输入字符串是“澳大利亚、英国、印度、韩国、德国”,那么结果应该是最大匹配,如下所示: 输出是最匹配的国家,相关性如下所示
'UK, Austrailia, France, Korea, India'
'India, Malaysia, Austrailia, US, UK'
'India, Austrailia, US, Italy'
'China, India, US, Brazil'
declare @matchCount int = 0;
SET @matchCount = (SELECT count(Item)
FROM dbo.SplitCountry('Austrailia, UK, India, Korea, Germany' , ',')
where Countries like '%'+Item+'%')
SELECT Countries, CASE
WHEN @matchCount >0 THEN @matchCount
ELSE 0
FROM tblCountry
我使用了一个函数来拆分字符串“SplitCountry”。我也不能在这里使用全文
【问题讨论】:
-
什么是最大匹配?目前尚不清楚您想要实现什么。你能提供想要的输出吗?
-
期望的输出在这里 'UK, Austrailia, France, Korea, India' 'India, Malaysia, Austrailia, US, UK' 'India, Austrailia, US, Italy' 'China, India, US,巴西的
-
我还在上面的帖子中提到并编辑了输出
标签: sql sql-server sql-server-2008