sql - 对于两者之间的每个值,两列之间的差异分为单独的行
问题描述
我无法解释我的问题,但我有这张桌子
ID START END
1 10 12
2 30 31
3 11 13
并想要这样的东西:
ID NUMBER
1 10
1 11
1 12
2 30
2 31
3 11
3 12
3 13
我需要将两列之间的所有唯一整数转换为单独的行。
这就是我希望转换的样子
我没有尝试过任何事情,因为我什至不知道如何调用这样的程序,所以感谢您的帮助
解决方案
如果您没有数字表(强烈推荐),您可以将临时计数表与CROSS APPLY
例子
Select A.ID
,B.Number
From YourTable A
Cross Apply ( Select Top ([End]-[Start]+1)
Number=[START]-1+Row_Number() Over (Order By (Select NULL))
From master..spt_values n1, master..spt_values n2
) B
退货
ID Number
1 10
1 11
1 12
2 30
2 31
3 11
3 12
3 13
推荐阅读
- python-2.7 - Python PyMC3 中的 pm.Normal()
- odbc - SQLSetPos 中的游标状态无效
- angular - 如何将 dx-data-grid 的所有 dxi-column 移动到单独的组件?
- outlook - 从 Mac Outlook 更新 16.13.1 开始,加载项支持中断
- swift - 将多行的 heightForRowAt indexPath 设置为 0
- java - How to access static file from webapp folder in spring controller?
- c# - 将资产下载到统一游戏中
- c++ - 返回函数中创建的对象。mingw和cl的区别
- python - Pandas 无法按列值过滤
- node.js - 如何在 Node.js 中构建一个强大的系统来调度通知?