一个查询语句,向各位高手求解,邹建大哥在吗?谢谢!在线等待。。。

Anhowe 2005-12-21 09:19:24
创建表语句如下
declare @a table(id nvarchar(10), number varchar(10))
insert @a select '18', 'AEFFD'
union all select '26', 'BDD'
union all select '35', 'CERF'
union all select '49', 'DWDW'
union all select '5', 'EWEWW'
union all select 'U6', 'WWFF'
union all select 'T7', 'HYTGF'
union all select 'T8', 'TTH'
union all select 'R9', 'FGRI'
union all select 'H10', 'EREJ'
用select * from @a查找结果如下:
id number
------------------------------------------------
18 AEFFD
26 BDD
35 CERF
49 DWDW
5 EWEWW
U6 WWFF
T7 HYTGF
T8 TTH
R9 FGRI
H10 EREJ
现我要求的结果集要如下格式,即每三行写到一行中:
id number id number id number
------------------------------------------------------------------
18 AEFFD 26 BDD 35 CERF
49 DWDW 5 EWEWW U6 WWFF
T7 HYTGF T8 TTH R9 FGRI
H10 EREJ
请问这个语句应怎么写呢,谢谢!!!!!!!!!!!
在线等待。。。。
...全文
322 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
建哥聊IT 2005-12-23
  • 打赏
  • 举报
回复
收藏!
wfliu 2005-12-21
  • 打赏
  • 举报
回复
好贴
lxw99 2005-12-21
  • 打赏
  • 举报
回复
我觉得min也可以

SQL Server 啊 努力 奋斗-----------------------------------------------------

Anhowe 2005-12-21
  • 打赏
  • 举报
回复
谢谢!!!!!!!!!!!!!!!!!!!
马上结贴。。。
lxw99 2005-12-21
  • 打赏
  • 举报
回复
18 AEFFD 26 BDD 35 CERF 49 DWDW
5 EWEWW U6 WWFF T7 HYTGF T8 TTH
R9 FGRI H10 EREJ NULL NULL NULL NULL


SQL Server 啊 努力 奋斗-----------------------------------------------------

lxw99 2005-12-21
  • 打赏
  • 举报
回复

declare @a table(id nvarchar(10),number varchar(10))
insert @a select '18' ,'AEFFD'
union all select '26' ,'BDD'
union all select '35' ,'CERF'
union all select '49' ,'DWDW'
union all select '5' ,'EWEWW'
union all select 'U6' ,'WWFF'
union all select 'T7' ,'HYTGF'
union all select 'T8' ,'TTH'
union all select 'R9' ,'FGRI'
union all select 'H10','EREJ'


declare @b table(rowid int identity(0,1),id nvarchar(10),number varchar(10))
insert into @b select * from @a


select
id = max(case rowid%4 when 0 then id end),
number=max(case rowid%4 when 0 then number end),
id = max(case rowid%4 when 1 then id end),
number=max(case rowid%4 when 1 then number end),
id = max(case rowid%4 when 2 then id end),
number=max(case rowid%4 when 2 then number end),
id = max(case rowid%4 when 3 then id end),
number=max(case rowid%4 when 3 then number end)

from
@b
group by
rowid/4
order by
rowid/4


SQL Server 啊 努力 奋斗-----------------------------------------------------

happyamei 2005-12-21
  • 打赏
  • 举报
回复
libin_ftsafe(子陌红尘|潇湘剑公子@dev-club)
太厉害了,羡慕
casting 2005-12-21
  • 打赏
  • 举报
回复
MARK 一个, 学习 学习
lsqkeke 2005-12-21
  • 打赏
  • 举报
回复
强 学习 ;)
子陌红尘 2005-12-21
  • 打赏
  • 举报
回复
declare @a table(id nvarchar(10),number varchar(10))
insert @a select '18' ,'AEFFD'
union all select '26' ,'BDD'
union all select '35' ,'CERF'
union all select '49' ,'DWDW'
union all select '5' ,'EWEWW'
union all select 'U6' ,'WWFF'
union all select 'T7' ,'HYTGF'
union all select 'T8' ,'TTH'
union all select 'R9' ,'FGRI'
union all select 'H10','EREJ'

declare @b table(rowid int identity(0,1),id nvarchar(10),number varchar(10))
insert into @b select * from @a

select
id = max(case rowid%3 when 0 then id end),
number=max(case rowid%3 when 0 then number end),
id = max(case rowid%3 when 1 then id end),
number=max(case rowid%3 when 1 then number end),
id = max(case rowid%3 when 2 then id end),
number=max(case rowid%3 when 2 then number end)
from
@b
group by
rowid/3
order by
rowid/3

/*
18 AEFFD 26 BDD 35 CERF
49 DWDW 5 EWEWW U6 WWFF
T7 HYTGF T8 TTH R9 FGRI
H10 EREJ NULL NULL NULL NULL
*/
lsqkeke 2005-12-21
  • 打赏
  • 举报
回复
建议你这样的格式还是放到应用程序去处理吧,这只是一个显示的问题!
Anhowe 2005-12-21
  • 打赏
  • 举报
回复
不好意思,上面没对齐,表结果要求原来的两列变成6列
每三行按顺序组成一行,
谢谢

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧