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

拆分数据行的有关问题

2012-07-29 
拆分数据行的问题记录如下:1椅子102凳子5........................如何把所有数据根据总数量拆分成单条数

拆分数据行的问题
记录如下:

1 椅子 10
2 凳子 5  
............
............

如何把所有数据根据总数量拆分成单条数据,如椅子有10把,拆分形成10条数据,每条数据一把椅子。

[解决办法]

SQL code
--> 测试数据:[tb]IF OBJECT_ID('[tb]') IS NOT NULL DROP TABLE [tb]GO CREATE TABLE [tb]([id] INT,[name] VARCHAR(4),[num] INT)INSERT [tb]SELECT 1,'椅子',10 UNION ALLSELECT 2,'凳子',5--------------开始查询--------------------------SELECT tb.*,s.number FROM [tb],master..spt_values s WHERE tb.num>s.number AND s.TYPE='p' ----------------结果----------------------------/* id          name num         number----------- ---- ----------- -----------1           椅子   10          01           椅子   10          11           椅子   10          21           椅子   10          31           椅子   10          41           椅子   10          51           椅子   10          61           椅子   10          71           椅子   10          81           椅子   10          92           凳子   5           02           凳子   5           12           凳子   5           22           凳子   5           32           凳子   5           4(15 行受影响)*/
[解决办法]
SQL code
declare @table table(    id int,    name nvarchar(10),    [count] int)insert @tableselect 1, N'椅子', 10 union allselect 2, N'凳子', 5  select    rowno=row_number() over(order by (select 1)), id,name,cntfrom @table aouter apply(select top(a.[count]) [cnt]=1 from master..spt_values where type = 'p') b 

热点排行