随笔 - 181  文章 - 15  trackbacks - 0
<2008年5月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

常用链接

留言簿(1)

随笔分类

随笔档案

My Tech blog

搜索

  •  

最新评论

阅读排行榜

评论排行榜

前几天去面试,考官出了一道sql题,当时没多考虑就给出了答案,后来回来一想才知道错了。

题目很简单,显示aname中重复的第一行
答案应当如此(调试通过)
select (select top 1 id from aa as b where b.aname=c.aname) as id,aname from (select distinct aname from aa) c 
另外出第m行到第n行数据的题也比较常见
不过应当注意是否包含第m行,如果包含第m行,则应该(还是针对上面的表):
select * from(select top (n-m+1)* from (select top (n)* from aa order by id)f order by id desc) h order by id

posted on 2008-05-01 17:44 littlegai 阅读(1875) 评论(4)  编辑 收藏 引用 所属分类: 我的代码玩具

FeedBack:
# re: 一道Sqlserver面试题 2008-09-08 10:18 hai
SELECT min(id),name
FROM test
GROUP BY name  回复  更多评论
  
# re: 一道Sqlserver面试题 2009-07-30 09:27 游客
如果 第一行不重复,那么上面的SQL语句就不成立了  回复  更多评论
  
# re: 一道Sqlserver面试题 2009-08-31 09:24 蔡栋
SELECT TOP 1 id FROM TempA AS t
WHERE id <> 1 AND [name]
IN (SELECT TOP (t.id - 1) [name] FROM TempA)  回复  更多评论
  
# re: 一道Sqlserver面试题 2010-04-29 10:21 bingzhou
SELECT min(id),name
FROM test
GROUP BY name having count(name)>1  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理