Oracle多栏输出语句

数据表:

IDNAME
1苹果汁
2牛奶
3蕃茄酱
4
5麻油
6酱油
7海鲜粉
8胡椒粉
9
10
11民众奶酪
12德国奶酪
13龙虾
14沙茶
15味精
16饼干
17猪肉
18墨鱼
19糖果
20桂花糕
21花生
22糯米

欲得到的结果:

ID1NAME1ID2NAME2ID3NAME3
1苹果汁2牛奶3蕃茄酱
45麻油6酱油
7海鲜粉8胡椒粉9
1011民众奶酪12德国奶酪
13龙虾14沙茶15味精
16饼干17猪肉18墨鱼
19糖果20桂花糕21花生
22糯米    

 使用SQL语句:

WITH  TEST  AS (
SELECT   1   AS  Id,  ' 苹果汁 '   AS  NAME  FROM  Dual  UNION   ALL
SELECT   2   AS  Id,  ' 牛奶 '   AS  NAME  FROM  Dual  UNION   ALL
SELECT   3   AS  Id,  ' 蕃茄酱 '   AS  NAME  FROM  Dual  UNION   ALL
SELECT   4   AS  Id,  ' '   AS  NAME  FROM  Dual  UNION   ALL
SELECT   5   AS  Id,  ' 麻油 '   AS  NAME  FROM  Dual  UNION   ALL
SELECT   6   AS  Id,  ' 酱油 '   AS  NAME  FROM  Dual  UNION   ALL
SELECT   7   AS  Id,  ' 海鲜粉 '   AS  NAME  FROM  Dual  UNION   ALL
SELECT   8   AS  Id,  ' 胡椒粉 '   AS  NAME  FROM  Dual  UNION   ALL
SELECT   9   AS  Id,  ' '   AS  NAME  FROM  Dual  UNION   ALL
SELECT   10   AS  Id,  ' '   AS  NAME  FROM  Dual  UNION   ALL
SELECT   11   AS  Id,  ' 民众奶酪 '   AS  NAME  FROM  Dual  UNION   ALL
SELECT   12   AS  Id,  ' 德国奶酪 '   AS  NAME  FROM  Dual  UNION   ALL
SELECT   13   AS  Id,  ' 龙虾 '   AS  NAME  FROM  Dual  UNION   ALL
SELECT   14   AS  Id,  ' 沙茶 '   AS  NAME  FROM  Dual  UNION   ALL
SELECT   15   AS  Id,  ' 味精 '   AS  NAME  FROM  Dual  UNION   ALL
SELECT   16   AS  Id,  ' 饼干 '   AS  NAME  FROM  Dual  UNION   ALL
SELECT   17   AS  Id,  ' 猪肉 '   AS  NAME  FROM  Dual  UNION   ALL
SELECT   18   AS  Id,  ' 墨鱼 '   AS  NAME  FROM  Dual  UNION   ALL
SELECT   19   AS  Id,  ' 糖果 '   AS  NAME  FROM  Dual  UNION   ALL
SELECT   20   AS  Id,  ' 桂花糕 '   AS  NAME  FROM  Dual  UNION   ALL
SELECT   21   AS  Id,  ' 花生 '   AS  NAME  FROM  Dual  UNION   ALL
SELECT   22   AS  Id,  ' 糯米 '   AS  NAME  FROM  Dual
)
SELECT   MAX (Decode(MOD(Id,  3 ),  1 , Id,  '' )) Id1,
               
MAX (Decode(MOD(Id,  3 ),  1 , NAME,  '' )) Name1,
               
MAX (Decode(MOD(Id,  3 ),  2 , Id,  '' )) Id2,
               
MAX (Decode(MOD(Id,  3 ),  2 , NAME,  '' )) Name2,
               
MAX (Decode(MOD(Id,  3 ),  0 , Id,  '' )) Id3,
               
MAX (Decode(MOD(Id,  3 ),  0 , NAME,  '' )) Name3
FROM  Test
GROUP   BY  Trunc(Rownum  /   3   -   0.1 0 )
ORDER   BY  Id1

 

PS:原贴链接http://www.zlsoft.com/techbbs/dispbbs.asp?boardid=62&id=36640&star=1#346248

     感谢原贴作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值