读书人

SQL基础有关问题怎么排序查询

发布时间: 2013-11-26 22:51:31 作者: rapoo

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

[解决办法]
引用:
Quote: 引用:


--要加 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可有不现实呀.如果数据多的话用TOP不现实吧.


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

读书人网 >SQL Server

热点推荐