在项目中经常遇到求每个类别最新显示的数据,比如显示某某某类别最新更新的5条数据。特写下这个sql记录于此:
代码如下
-- =============================================
-- 作者:
-- 创建日期:<2012-9-28>
-- 描述: <显示每个类别下最新更新的n条数据>
-- =============================================
DECLARE@tTABLE
(
NewsIdINT,
NewsType NVARCHAR(20),
NewsTitle NVARCHAR(50),
AddTime DATETIME
)
INSERTINTO@tVALUES(1,'体育新闻','火箭赢了',-10-11')
INSERTINTO@tVALUES(2,'体育新闻','刘翔因伤退出',-10-12')
INSERTINTO@tVALUES(3,'体育新闻','奥尼尔减肥成功',-10-13')
INSERTINTO@tVALUES(4,'八卦新闻','凤姐结婚了',-10-11')
INSERTINTO@tVALUES(5,'八卦新闻','刘德华当爹了',-10-12')
INSERTINTO@tVALUES(6,'八卦新闻','苍老师来中国宣传了',-10-13')
INSERTINTO@tVALUES(7,'财经新闻','股票跌破2800点',-10-12')
INSERTINTO@tVALUES(8,'财经新闻','人民币首次降息',-10-10')
--每个类别最新显示数量
DECLARE@ShowNumsINT
SET@ShowNums=2
SELECT*FROM
(
SELECTNewsId,NewsTitle,NewsType,AddTime,
ROW_NUMBER() OVER(PARTITIONBYNewsTypeORDERBYAddTimeDESC)ASRowIndex
FROM@t
)AST
WHERERowIndex <=@ShowNums
运行该Sql,结果显示为:
sql server|SQL Server实现显示每个类别最新更新数据的方法
http://m.bbyears.com/jintiangengxin/130447.html
推荐访问:sql语句 sql注入 sqllite sql优化