按该字段排序时,多行中相同的只取第一-----------行如何查询出这样的数据?

雄牛 2017-03-25 07:41:15
有这样的表数据,

ID UserName Logintime
1 cowbo 2017-1-1 10:50
2 cowbo 2017-2-1 10:50
3 cowbo 2017-3-1 10:50
4 hackc 2017-3-2 10:50

如何查询出:
ID UserName Logintime
1 cowbo 2017-1-1 10:50
2017-2-1 10:50
2017-3-1 10:50
4 hackc 2017-3-2 10:50

...全文
197 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
二月十六 2017-03-25
  • 打赏
  • 举报
回复
--测试数据
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
CREATE TABLE #T(id INT,UserName NVARCHAR(100),Logintime DATETIME)
Insert #T
select 1,N'cowbo','2017-1-1 10:50' union all
select 2,N'cowbo','2017-2-1 10:50' union all
select 3,N'cowbo','2017-3-1 10:50' union all
select 4,N'hackc','2017-3-2 10:50'
Go
--测试数据结束
;WITH tempa AS (
SELECT *,ROW_NUMBER()OVER(PARTITION BY UserName ORDER BY id) AS num FROM #T
)
SELECT ( CASE WHEN tempa.num = 1 THEN id
ELSE NULL
END ) AS id ,
( CASE WHEN tempa.num = 1 THEN tempa.UserName
ELSE NULL
END ) AS UserName ,
tempa.Logintime
FROM tempa;



  • 打赏
  • 举报
回复

UPDATE  T2 SET ID='',UserName=''  FROM 
(
(SELECT T1.*,ROW_NUMBER()OVER(PARTITION BY UserName,ORDER BY Logintime) AS RN) T2
WHERE RN>1
卖水果的net 2017-03-25
  • 打赏
  • 举报
回复
仅仅是username 列这样处理吗?

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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