加入SQL Server中的CSV列

bum*_*una 12 sql t-sql sql-server

嗨,我正在做一些针对遗留数据库的报道,而且我有一点脑屁......

基本上有50个自定义标准,它们作为对应于表格的CSV列完成.

所以说CC5栏的值为'2,6,7,12,8,3,13,1,5,11,'

对着一张桌子 dbo.tbl_custom_code_5

有价值的

code   desc
 1     Wine
10     Diet Pepsi
11     Other Soft Drink
12     Coffee
13     Tea ....
Run Code Online (Sandbox Code Playgroud)

它就这样......所以我需要做一组/计算一些......

 Select [desc], COUNT(b.CC6)
 from dbo.tbl_custom_code_6 a
 INNER JOIN dbo.Respondent b ON a.code = b.CC6
 group by [desc]
Run Code Online (Sandbox Code Playgroud)

由于csv显然不会工作,所以我尝试了第一个愚蠢的事情.

 Select [desc], COUNT(b.CC6)
 from dbo.tbl_custom_code_6 a
 INNER JOIN dbo.Respondent b ON a.code like '%' + b.CC6 + ',%'
 group by [desc]
Run Code Online (Sandbox Code Playgroud)

哪个不起作用,即使这样也行不通,因为6会出现等等...

我知道必须有更好的方法来做到这一点.有什么想法吗 ?

Cha*_*ndu 9

试试这个(我假设之间没有任何空格等,以及csv数据中的数字):

SELECT [DESC], COUNT(b.CC6)
FROM dbo.tbl_custom_code_6 a
INNER JOIN dbo.Respondent b ON CHARINDEX(',' + a.code + ',', ',' + b.CC6) > 0
GROUP BY [DESC]
Run Code Online (Sandbox Code Playgroud)