读书人

大家伙儿来看看这个咋整

发布时间: 2013-09-18 14:17:40 作者: rapoo

大家来看看这个咋整?
比如说 lpz01,lpz03,lpz04
1001 1 3
sql有办法显示为
lpz01,lpz03,lpz04
1001 1 1
1001 2 2
1001 3 3 这样么?
[解决办法]
可以吧。



DECLARE @t TABLE(a INT,b INT,c int)
INSERT INTO @t SELECT 1001,1,3;

SELECT a,b.number AS b,b.number AS c FROM @t a JOIN master..spt_values b ON b.number BETWEEN a.b AND a.c AND b.type='p'

/*
a b c
----------- ----------- -----------
1001 1 1
1001 2 2
1001 3 3
*/

[解决办法]
#1的可以。

换个思路的话,可以这样:

declare @t table (lpz01 int,lpz03 int,lpz04 int)
insert into @t
select 1001,1,3

;with maco as
(
select lpz01,lpz03,lpz03 as lpz04 from @t
union all
select a.lpz01,a.lpz03+1,a.lpz03+1 from maco a,@t b where a.lpz03<b.lpz04
)
select * from maco
/*
lpz01 lpz03 lpz04
----------- ----------- -----------
1001 1 1
1001 2 2
1001 3 3


*/


[解决办法]
是不是这样啊 怎么楼上都说了啊
大家伙儿来看看这个咋整


[解决办法]
写完了才发现一楼跟我一个思路 

读书人网 >SQL Server

热点推荐