首页 新闻 会员 周边 捐助

问个SQL语句

0
悬赏园豆:30 [已解决问题] 解决于 2009-04-08 17:10

Table:Test有下列数据:   ID=〉int identity(1,1)
ID Name
1 aaaa
2 bbbb
3 cccc
4 dddd
5 eeee
6 ffff

请问怎样才能输出下列样式呢?
ID Name ID Name
1 aaaa 2 bbbb
3 cccc 4 dddd
5 eeee 6 ffff

浑浊的云的主页 浑浊的云 | 菜鸟二级 | 园豆:210
提问于:2009-04-08 11:42
< >
分享
最佳答案
0

WITH CTE AS
(
SELECT [ID],[Name],ROW_NUMBER() OVER (ORDER BY [ID]) AS [Num]
FROM [Test]
)
SELECT t1.ID, t1.Name, t2.ID, t2.Name
FROM CTE AS t1
LEFT OUTER JOIN CTE AS t2
ON t1.Num = t2.Num - 1
WHERE t1.Num % 2 = 1

Azuresong | 老鸟四级 |园豆:3565 | 2009-04-08 15:46
其他回答(2)
0

select a.ID,a.Name,b.ID,b.Name from Test a inner join Test b on a.ID = b.ID -1 and a.ID in(1,3,5) and  b.ID in(2,4,6)

貌似可以实现你说的情况吧!你试试!

子夜星辰 | 园豆:1613 (小虾三级) | 2009-04-08 12:01
0

1楼的貌似有问题啊

id  identity 如果删除过记录的话 那么 on a.ID = b.ID -1 会使有些记录查不出。

总之是个比较山寨的法子啊……

2楼的好快啊……

jeff_sh | 园豆:365 (菜鸟二级) | 2009-04-08 15:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册