如何用SQL语句实现相同列值只取第一行?
SQLSERVER中有表如下电话公司电话1a电话2a电话3a电话4b电话5b电话6b电话7b电话8c电话9c一个公司可能有多部电话,现在要查公司电话,求一个公司只要一部电...
SQL SERVER中有表如下
电话 公司
电话1 a
电话2 a
电话3 a
电话4 b
电话5 b
电话6 b
电话7 b
电话8 c
电话9 c
一个公司可能有多部电话,现在要查公司电话,求一个公司只要一部电话就行了(哪一部都行),怎么用SQL语句实现啊?毕业太久了,忘光了,谢谢各位大侠了!! 展开
电话 公司
电话1 a
电话2 a
电话3 a
电话4 b
电话5 b
电话6 b
电话7 b
电话8 c
电话9 c
一个公司可能有多部电话,现在要查公司电话,求一个公司只要一部电话就行了(哪一部都行),怎么用SQL语句实现啊?毕业太久了,忘光了,谢谢各位大侠了!! 展开
展开全部
oracle中select title, type from a where rowid = (select max(rowid) from a b where b.title = a.title);其中a b指的是同一个表的别名
追问
我补充了一下,麻烦你再给看看,用的是SQL SERVER 2005
追答
WITH mycte AS(
SELECT ROW_NUMBER() OVER( ORDER BY 公司) NO, 电话, 公司 FROM #test)
SELECT 电话, 公司 FROM mycte WHERE NOT EXISTS (
SELECT 公司 FROM mycte sub WHERE mycte.公司 = sub.公司 AND mycte.no >
sub.no );
其中#test为表名,mycte、sub为#test的别名,其中用到了ROW_NUMBER() OVER和NOT EXISTS函数,这条是可以实现你要效果
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询