日期:2014-05-16  浏览次数:20638 次

SQL 查询结果处理问题
表名:Table
结构如下:
id, Title, Content
1, A, nvarchar(max)
2, B, nvarchar(max)

其中Content中存的是以逗号相隔的数字,数字顺序排列,不会重复,单条的数据量非常大,几万级别,格式如下:
1,23,45,678,2323,2615,6325,23232......
32,45,128,2323,2615,2861,13512,16802.......

现在要处理的是:
如何在上面查询到的2个结果中,将Content里面的值相同的数字取出来,并存为以下格式:
45,2323,2615



目前通过查取结果后,通过其他代码将这2个数据分隔成数组,然后进行数组交集处理,但速度不理想,太慢。不知能否通过存储过程快速处理?






------解决方案--------------------
这个也基本没有好办法 只能分拆了再合并 效率一样的低下

 这个是最初设计的问题 没办法
------解决方案--------------------
行拆成列,进行值比对。这个计算量不在少数,结构决定的,没有什么特别的好办法。 

------解决方案--------------------
引用:
有没有快速的数组交集处理方法?


至少在SQL SERVER里面没有什么太好的办法。
------解决方案--------------------
这个主要是数据类型是max的,如果用sql server中的substring,或者left 函数进行处理,会有问题。

如果是比较少的,还可以按照都好分拆,然后group by xx having count(*) >= 2 这样来处理