SQL基础问题如何排序查询
select * from (select *, row_number() over(order by id) RowNumber from SystemLog order by logData desc)t
--这语要怎么写.这样写报错
--要用ID做行号,获取行号又得以哪个字段来排序,
--实际需求要要按logData这个日期类型从最近时间来排序,这样写又报错,不解
报错提示
The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP, OFFSET or FOR XML is also specified.
望写出来的大牛告诉我一下,为啥会有这个提示,为什么要用大牛您写的方式才能解决.谢谢.
[解决办法]
--要加 TOP 100 PERCENT,SQL语法规定了
select * from (select TOP 100 PERCENT *, row_number() over(order by id) RowNumber from SystemLog order by logData desc)t
[解决办法]
TOP 100 PERCENT就是百分之百的意思 是查询的全部数据
[解决办法]
try this,
select * from
(select *,row_number() over(order by id) 'RowNumber'
from SystemLog) t
order by logData desc
[解决办法]
select row_number() over(order by id) RowNumber,* from SystemLog
这样就可以了,为什么你还要排一次序。如果要用logData再排序,请
select row_number() over(order by id,logData desc) RowNumber,* from SystemLog