SQL 查询结果处理问题

AMinfo 2014-04-02 11:53:49
表名: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个数据分隔成数组,然后进行数组交集处理,但速度不理想,太慢。不知能否通过存储过程快速处理?





...全文
237 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
AMinfo 2014-04-04
  • 打赏
  • 举报
回复
换种方法解决了问题,还极大提高速度 http://blog.csdn.net/aminfo/article/details/22955059 感谢各位!
AMinfo 2014-04-04
  • 打赏
  • 举报
回复
引用 6 楼 yupeigu 的回复:
这个主要是数据类型是max的,如果用sql server中的substring,或者left 函数进行处理,会有问题。 如果是比较少的,还可以按照都好分拆,然后group by xx having count(*) >= 2 这样来处理
谢谢!您说的这种方法要如何用呢?
LongRui888 2014-04-04
  • 打赏
  • 举报
回复
这个主要是数据类型是max的,如果用sql server中的substring,或者left 函数进行处理,会有问题。 如果是比较少的,还可以按照都好分拆,然后group by xx having count(*) >= 2 这样来处理
AMinfo 2014-04-04
  • 打赏
  • 举报
回复
谢谢两位,正在测试交集算法,如果速度快的话,一会发上来。
Mr_Nice 2014-04-03
  • 打赏
  • 举报
回复
行拆成列,进行值比对。这个计算量不在少数,结构决定的,没有什么特别的好办法。
--小F-- 2014-04-03
  • 打赏
  • 举报
回复
这个也基本没有好办法 只能分拆了再合并 效率一样的低下 这个是最初设计的问题 没办法
--小F-- 2014-04-03
  • 打赏
  • 举报
回复
引用 3 楼 AMinfo 的回复:
有没有快速的数组交集处理方法?
至少在SQL SERVER里面没有什么太好的办法。
AMinfo 2014-04-03
  • 打赏
  • 举报
回复
有没有快速的数组交集处理方法?

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧