栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

SQL Server奇怪的分组方案按多列和或

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SQL Server奇怪的分组方案按多列和或

干得好:

with g (rootid, previd, level, keyid, col1, col2, col3) as (  select keyid, '-', 1, keyid, col1, col2, col3 from item  union all  select g.rootid, g.keyid, g.level + 1, i.keyid, i.col1, i.col2, i.col3     from g    join item i on i.col1 = g.col1 or i.col2 = g.col2 or i.col3 = g.col3     where i.keyid > g.keyid),  m (keyid, rootid) as (  select keyid, min(rootid) from g group by keyid)select * from m;

结果:

keyid  rootid  -----  ------a      a       b      a       c      a       d      a       e      a       f      a       g      g       h      g

注意 :请记住,默认情况下,SQL Server在处理递归CTE时限制为100次迭代(每个组的行数)。 用英语
:即使可以如上所述进行操作,SQLServer可以处理的内容也有明显的限制。如果达到此限制,您将收到以下消息:

在语句完成之前,最大递归100已用尽。

如果发生这种情况,请考虑添加子句

option (maxrecursion 32767)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/372824.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号