sql – 多次选择同一行
发布时间:2021-03-06 20:02:37 所属栏目:MsSql教程 来源:网络整理
导读:我有一个表有一个主对象的孩子.任何子项都可以出现多次,并且有一个包含该数字的Occurences列,因此表中的数据类似于: ChildID | ParentID | Occurences------------------------------- 1 | 1 | 2 2 | 1 | 2 3 | 2 | 1 4 | 2 | 3 我需要得到所有孩子的清单,每
|
我有一个表有一个主对象的孩子.任何子项都可以出现多次,并且有一个包含该数字的Occurences列,因此表中的数据类似于: ChildID | ParentID | Occurences
-------------------------------
1 | 1 | 2
2 | 1 | 2
3 | 2 | 1
4 | 2 | 3
我需要得到所有孩子的清单,每个孩子在结果中出现核心次数,例如 IDENT | ChildID | ParentID
--------------------------
1 | 1 | 1
2 | 1 | 1
3 | 2 | 1
4 | 2 | 1
5 | 3 | 2
6 | 4 | 2
7 | 4 | 2
8 | 4 | 2
我可以使用一个循环表的游标并插入尽可能多的行,但我认为这不是最好的解决方案. 谢谢您的帮助 创建脚本包括: DECLARE @Children TABLE (ChildID int,ParentID int,Occurences int) INSERT @Children SELECT 1,1,2 UNION ALL SELECT 2,2 UNION ALL SELECT 3,2,1 UNION ALL SELECT 4,3 解决方法;with C as ( select ChildID,ParentID,Occurences - 1 as Occurences from @Children union all select ChildID,Occurences - 1 as Occurences from C where Occurences > 0 ) select row_number() over(order by ChildID) as IDENT,ChildID,ParentID from C order by IDENT (编辑:天瑞地安资讯网_瑞安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server – 我可以在SQL R2服务器中创建SQL v10.0数据库
- sql-server-2000 – 查询以获取SQL Server 2000中的所有外键
- sql-server – 高效插入具有聚簇索引的表
- sql-server – 按值列表排序查询结果
- 从具有动态sql的存储过程创建实体
- sql-server – 可以在一台SQL服务器上放置的数据库数量有限
- sql-server – 限制SQL Server上的连接权限
- HTML行内元素与块级元素有哪些及区别详解
- sql-server – 为什么这些字符在SQL Server中都是相同的?
- sql-server – 每个实例或每个数据库的SQL排序规则?
站长推荐
热点阅读

