sql语句语法错误,关于order by的排序问题

2024-12-17 08:26:54
推荐回答(4个)
回答1:

你这个错误是因为你加入的排序ORDER BY ,你把排序改成如下SQL语句:

SELECT report_id,build_date_s,[file_name],title
FROM  (
 SELECT TOP 100 percent report_id,build_date_s,[filename],title,type
 FROM app_report
 WHERE type='0' AND user_id = '606'
  ORDER BY report_id,type,user_id DESC)

这个错误是因为,你内部的查询语句中有WHERE 筛选条件,而ORDER BY 的排序条件要有你WHERE 后的列。

回答2:

首先,在子查询中的排序是无效的也是没有意义的
其次,派生表的使用from () 集合需要加表别名 from () as a

回答3:

这种引入子查询时,要把子查询的结果集as一下

select report_id,build_date_s,[file_name],title from
(select top 100 percent report_id,build_date_s,[file_name],title,type from app_report where type='0' and user_id='606' order by report_id desc) as a

回答4:

如果你用的是oracle的话top n的用法是不能使用的,其他没什么错误