首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2013-11-26 
SQL基础问题如何排序查询select * from (select *, row_number() over(order by id) RowNumberfrom System

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

热点排行