请注意,我已经在系统下有这样的改变它需要时间。因此,我所知道的最好的办法是规范,但...SQL需要内部加入
我有followng 2个表
Tbl1
CompId CommaList
------ --------
2 '122','54','90'
54 '53','76'
34 '87'
22 '98'
Tbl2
ID ClientId
-- --------
1 122
2 76
3 87
4 98
我需要的是加入TBL1和TBL2,然后返回CompId和ID
联接应从tbl2.ClientId做与tbl1.CommaList(这是从我需要找到一个匹配值逗号delimted列表。
希望这是有意义的。
select tbl1.CompId, tbl2.Id
from tbl1 join tbl2 on CommaList = tbl2.ClientId
显然这不会工作,因为它们是不同的类型,我还需要在CommaList中找到列表。
最后的结果应该是这样的:
ID CompId
-- ------
1 2
2 54
3 34
4 22
您将需要反序列包含在TBL1的CommaList第一数据。 – 2013-03-12 16:22:04
......这就是为什么你不应该使用多值列 – 2013-03-12 16:24:53
对于每个CompId,ClientId,Tbl1应该有一行,而不是每个CompId都有一行,所有的客户端都被塞进一个值。 – 2013-03-12 16:25:54