1. 定义 简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW_NUMBER() OVER (ORDER BY [列名]DESC) 是先把[列名]降序排列,再为降序以后的每条[列名]记录返回一个降序序号,序号从1开始,依次往下排. 排名函数 "ROW_NUMBER" 必须有 ORDER BY 子句. 2.简单示例 表的结构: 用排名函数进行查询: select * ,ROW_NUMBER() OVER(ORDER BY distId desc) a…
--就在OVER order by 中用case语句进行判断. IF ( OBJECT_ID('tempdb..#TempTable') IS NOT NULL ) DROP TABLE #TempTable SELECT * INTO #TempTable FROM ( SELECT ROW_NUMBER() OVER ( ORDER BY CASE WHEN @orderby ='CreateDate DESC' THEN CreateDate END DESC, CASE WHEN @or…