题目大概如下:
【写一段 sql语句,
表 TAB1 中的id 为自增长,增长量为1,表如下:
id tac tbc 1 a1 b1
2 a2 b2
3 a3 b3
4 a4 b4
5 a5 b5要求输出如下:
id tac tbc id tac tbc 1 a1 b1 2 a2 b2
3 a3 b3 4 a4 b4
5 a5 b5 * (注:* 表示任何字符)】这段sql语句怎么写啊? 请各位帮帮忙。谢谢啦!!
【写一段 sql语句,
表 TAB1 中的id 为自增长,增长量为1,表如下:
id tac tbc 1 a1 b1
2 a2 b2
3 a3 b3
4 a4 b4
5 a5 b5要求输出如下:
id tac tbc id tac tbc 1 a1 b1 2 a2 b2
3 a3 b3 4 a4 b4
5 a5 b5 * (注:* 表示任何字符)】这段sql语句怎么写啊? 请各位帮帮忙。谢谢啦!!
FROM tb AS A
LEFT JOIN tb AS B
ON A.id=B.id-1
WHERE A.id % 2 = 1;
-- Author : liangCK 小梁
-- Comment: 小梁 爱 兰儿
-- Date : 2009-07-10 16:07:15
-------------------------------------------
--> 生成测试数据: @T
DECLARE @T TABLE (id INT,tac VARCHAR(2),tbc VARCHAR(2))
INSERT INTO @T
SELECT 1,'a1','b1' UNION ALL
SELECT 2,'a2','b2' UNION ALL
SELECT 3,'a3','b3' UNION ALL
SELECT 4,'a4','b4' UNION ALL
SELECT 5,'a5','b5'--SQL查询如下:SELECT *
FROM @T AS A
LEFT JOIN @T AS B
ON A.id=B.id-1
WHERE A.id % 2 = 1;/*
id tac tbc id tac tbc
----------- ---- ---- ----------- ---- ----
1 a1 b1 2 a2 b2
3 a3 b3 4 a4 b4
5 a5 b5 NULL NULL NULL(3 row(s) affected)*/
(select id,tac,tab from tb where id%2=1)aa
left join
(select id,tac,tab from tb where id%2=0)bb
on aa.id+1=bb.id
FROM @T AS A
LEFT JOIN @T AS B
ON A.id=B.id-1
WHERE A.id % 2 = 1
SELECT *
FROM TAB1 A
LEFT JOIN TAB1 B
ON A.id=B.id-1
WHERE A.id % 2 = 1
select * from (select * from @t where id %2 = 1) a
left join
(select * from @t where id % 2= 0) b
on a.id = b.id-1
insert into @tmp (tac,tbc)
select 'a1','b1'
union all select 'a2','b2'
union all select 'a3','b3'
union all select 'a4','b4'
union all select 'a5','b5'
select a.*,b.*
from @tmp a left join @tmp b on a.id=b.id-1
where a.id % 2=1
create tab1
(
id int identity,
tb1 char(10),
tb2 char(10)
)插入数据如下:
insert into tab1 (tb1,tb2) values("a1","b1")
其他数据如此类推插入。其实这里最关键就是加入一个单词而且,其他就像我们平时数据库操作一样。
INSERT INTO #TT
SELECT 1,'a1','b1' UNION ALL
SELECT 2,'a2','b2' UNION ALL
SELECT 3,'a3','b3' UNION ALL
SELECT 4,'a4','b4' UNION ALL
SELECT 5,'a5','b5'select T1.*,T2.* from #TT T1 left join #TT T2 on T1.id=T2.id-1 where T1.id%2=1