X----崗位----X:X-姓名-X X--------聯系方式--------X X----崗位----X:X-姓名-X X--------聯系方式--------X
X----崗位----X:X-姓名-X X--------聯系方式--------X X----崗位----X:X-姓名-X X--------聯系方式--------X
X----崗位----X:X-姓名-X X--------聯系方式--------X X----崗位----X:X-姓名-X X--------聯系方式--------X
X----崗位----X:X-姓名-X X--------聯系方式--------X X----崗位----X:X-姓名-X X--------聯系方式--------X
X----崗位----X:X-姓名-X X--------聯系方式--------X X----崗位----X:X-姓名-X X--------聯系方式--------X這里本來是有十條記錄的,我想一行顯示兩條記錄,用sql 語句怎么合并呢?
X----崗位----X:X-姓名-X X--------聯系方式--------X X----崗位----X:X-姓名-X X--------聯系方式--------X
X----崗位----X:X-姓名-X X--------聯系方式--------X X----崗位----X:X-姓名-X X--------聯系方式--------X
X----崗位----X:X-姓名-X X--------聯系方式--------X X----崗位----X:X-姓名-X X--------聯系方式--------X
X----崗位----X:X-姓名-X X--------聯系方式--------X X----崗位----X:X-姓名-X X--------聯系方式--------X這里本來是有十條記錄的,我想一行顯示兩條記錄,用sql 語句怎么合并呢?
X----崗位----X:X-姓名-X X--------聯系方式--------X
X----崗位----X:X-姓名-X X--------聯系方式--------X
X----崗位----X:X-姓名-X X--------聯系方式--------X
X----崗位----X:X-姓名-X X--------聯系方式--------X
X----崗位----X:X-姓名-X X--------聯系方式--------X
X----崗位----X:X-姓名-X X--------聯系方式--------X
X----崗位----X:X-姓名-X X--------聯系方式--------X
X----崗位----X:X-姓名-X X--------聯系方式--------X
X----崗位----X:X-姓名-X X--------聯系方式--------X本來是這樣的,但我想打印成:X----崗位----X:X-姓名-X X--------聯系方式--------X X----崗位----X:X-姓名-X X--------聯系方式--------X
X----崗位----X:X-姓名-X X--------聯系方式--------X X----崗位----X:X-姓名-X X--------聯系方式--------X
X----崗位----X:X-姓名-X X--------聯系方式--------X X----崗位----X:X-姓名-X X--------聯系方式--------X
X----崗位----X:X-姓名-X X--------聯系方式--------X X----崗位----X:X-姓名-X X--------聯系方式--------X
X----崗位----X:X-姓名-X X--------聯系方式--------X X----崗位----X:X-姓名-X X--------聯系方式--------X
就是把先前那種格式的兩條記錄合并為一條記錄,怎么做呢 ?
;with ach as
(
select *,rid=row_number() over (order by getdate())
from tb
)select a.*,b.*
from ach a,ach b
where a.rid%2 = 1 and b.rid%2 = 0 and a.rid=b.rid-1
--方法应该类似下面,由于没提供数据,自己依葫芦画瓢改下好了
select proid,cost,
max(case when linenum =1 then value else '' END) 1,
max(case when linenum =2 then value else '' END) 2,
max(case when linenum =3 then value else '' END) 3,
max(case when linenum =3 then value else '' END) 4,
max(case when linenum =3 then value else '' END) 5
from A
group by proid,cost
create table tb(id int,ic int)
insert into tb
select 1,1 union all
select 1,2 union all
select 1,3 union all
select 1,4 union all
select 1,5
go;with ach as
(
select *,rid=row_number() over (order by getdate())
from tb
)select a.*,b.*
from ach a left join ach b on b.rid%2 = 0 and a.rid=b.rid-1
where a.rid%2 = 1drop table tb/******************id ic rid id ic rid
----------- ----------- -------------------- ----------- ----------- --------------------
1 1 1 1 2 2
1 3 3 1 4 4
1 5 5 NULL NULL NULL(3 行受影响)
2000用临时表和identity代替。
(
select *,no=row_number() over (order by getdate())
from tb
)select *
from cte a,cte b
where a.no%2 = 1 and b.no%2 = 0 and a.no<b.no
謝謝你,不過,我已經找到另外一種格式
select m.param_id ,m.class_name ,n.class_name ,n.param_id from
(select param_id,class_name ,row_number()over(order by getdate()) row from chd_code )m
inner join
(select param_id,class_name ,row_number()over(order by getdate()) row from chd_code)n on m.row+1=n.row where m.row % 2=1 and n.row %2=0
大家相互學習一下,能告訴我區別嗎?