求解一道 SQl面试题

claymore1114 2009-07-10 04:05:10
题目大概如下:
【写一段 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语句怎么写啊? 请各位帮帮忙。谢谢啦!!
...全文
67 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
NTM2008 2009-07-11
  • 打赏
  • 举报
回复
haha
tangrao31415926 2009-07-11
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 a346848110 的回复:]
我看了全部的答案,好像都不符合要求哦,人家说要数据id自动增加,就像access中自动编号的功能。而上面的功能都是查询而已,加入添加一个行呢,id可以自动为6吗?大家看清楚题目吧!!

其实想id自动增加好简单,用一个单词就可以了,identity

建表如下:
create tab1

id int identity,
tb1 char(10),
tb2 char(10)


插入数据如下:
insert into tab1 (tb1,tb2)  values("a1","b1")
其他数据如此类推插入。

其实这里最关键就是加入一个单词而且,其他就像我们平时数据库操作一样。

[/Quote]
=..=题都不看清的,人家说表本身的ID是自动增长的。现在不是要建表,而是要从表里查数据出来,并且要查到的数据符合给定的输出模式……也就是单数列做,偶数右……
bdqnmhm 2009-07-11
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 liangck 的回复:]
SQL code-------------------------------------------
-- Author : liangCK 小梁
-- Comment: 小梁 爱 兰儿
-- Date : 2009-07-10 16:07:15
---------------------------------------------> 生成测试数据: @TDECLARE@TTABL¡­
[/Quote]
仙道彰 2009-07-11
  • 打赏
  • 举报
回复
....
ws_hgo 2009-07-11
  • 打赏
  • 举报
回复
create TABLE #TT (id INT,tac VARCHAR(2),tbc VARCHAR(2))
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

a346848110 2009-07-10
  • 打赏
  • 举报
回复
我看了全部的答案,好像都不符合要求哦,人家说要数据id自动增加,就像access中自动编号的功能。而上面的功能都是查询而已,加入添加一个行呢,id可以自动为6吗?大家看清楚题目吧!!

其实想id自动增加好简单,用一个单词就可以了,identity

建表如下:
create tab1

id int identity,
tb1 char(10),
tb2 char(10)


插入数据如下:
insert into tab1 (tb1,tb2) values("a1","b1")
其他数据如此类推插入。

其实这里最关键就是加入一个单词而且,其他就像我们平时数据库操作一样。
cxmcxm 2009-07-10
  • 打赏
  • 举报
回复
declare @tmp table (id int identity(1,1),tac char(10),tbc char(10))
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
pop_kiner 2009-07-10
  • 打赏
  • 举报
回复
学习了~
tangrao31415926 2009-07-10
  • 打赏
  • 举报
回复
学习啦,原来只要LEFT JION 就行啦
feixianxxx 2009-07-10
  • 打赏
  • 举报
回复
梁哥正解
Cyanapple_wen 2009-07-10
  • 打赏
  • 举报
回复
三楼的还可以
xiequan2 2009-07-10
  • 打赏
  • 举报
回复
学习
zoom8 2009-07-10
  • 打赏
  • 举报
回复

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
  • 打赏
  • 举报
回复
学习了
wpeng8218 2009-07-10
  • 打赏
  • 举报
回复

SELECT *
FROM TAB1 A
LEFT JOIN TAB1 B
ON A.id=B.id-1
WHERE A.id % 2 = 1
claymore1114 2009-07-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 liangck 的回复:]
SQL code-------------------------------------------
-- Author : liangCK 小梁
-- Comment: 小梁 爱 兰儿
-- Date : 2009-07-10 16:07:15
---------------------------------------------> 生成测试数据: @TDECLARE@TTABL¡­
[/Quote]
那 * 表示任何字符 什么意思啊
gw0702 2009-07-10
  • 打赏
  • 举报
回复
study...
zz_ping 2009-07-10
  • 打赏
  • 举报
回复
运行试试就知道结果了
namu 2009-07-10
  • 打赏
  • 举报
回复
我觉得3楼的可以
加载更多回复(5)

34,593

社区成员

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

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