首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求将一个范围的值一一列出来!解决方案

2012-06-02 
求将一个范围的值一一列出来!我有这样一张表,要求把表中的区段范围一一列出来如B表:A表:namename2beginnum

求将一个范围的值一一列出来!
我有这样一张表,要求把表中的区段范围一一列出来如B表:
A表:
name name2 beginnum endnum
东东 嘻嘻 2000 30000
东东 哈哈 40000 60000
龙龙 菜菜 1000 20000
呼呼 哄哄 283192 1234320


B表:
name name2 beginnum endnum numid
东东 嘻嘻 2000 30000 2000
东东 嘻嘻 2000 30000 2001
东东 嘻嘻 2000 30000 2002
东东 嘻嘻 2000 30000 2003
东东 嘻嘻 2000 30000 2004
......
东东 嘻嘻 2000 30000 30000
东东 哈哈 40000 60000 40000
东东 哈哈 40000 60000 40001
东东 哈哈 40000 60000 40002
东东 哈哈 40000 60000 40003
东东 哈哈 40000 60000 40004
东东 哈哈 40000 60000 40005
东东 哈哈 40000 60000 40006
......
东东 哈哈 40000 60000 60000
龙龙 菜菜 1000 20000 1000
龙龙 菜菜 1000 20000 1001
龙龙 菜菜 1000 20000 1002
龙龙 菜菜 1000 20000 1003
......
龙龙 菜菜 1000 20000 20000
呼呼 哄哄 283192 1234320 283192
呼呼 哄哄 283192 1234320 283193
呼呼 哄哄 283192 1234320 283194
呼呼 哄哄 283192 1234320 283195
呼呼 哄哄 283192 1234320 283196
......
呼呼 哄哄 283192 1234320 1234320  


[解决办法]

SQL code
if object_id('[A]') is not null drop table [A]gocreate table [A]([name] varchar(4),[name2] varchar(4),[beginnum] int,[endnum] int)insert [A]select '东东','嘻嘻',2000,30000 union allselect '东东','哈哈',40000,60000 union allselect '龙龙','菜菜',1000,20000 union allselect '呼呼','哄哄',283192,1234320go;with sn as(select top 1000000 rn=row_number() over(order by getdate()) from sys.objects,sys.columns)select a.*,a.beginnum+b.rn-1 as numidfrom ajoin sn b on a.beginnum+b.rn-1<=a.endnumorder by name,name2,numid 

热点排行