SQL 2005数据库
在Microsoft SQL Server Management Studio中运行如下SQL语句:
select count(*) from bookinfo as book order by book.id desc;报如下错误:
消息 8127,级别 16,状态 1,第 1 行
ORDER BY 子句中的列 "bookinfo.id" 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。

表结构如下图示:
 

解决方案 »

  1.   

    select count(*) from bookinfo as book
      

  2.   


    select count(*) from bookinfo as book
    或者
    select count(*) ,book.id from bookinfo as book order by book.id desc
      

  3.   


    select count(*) from bookinfo as book
    或者
    select count(*) ,book.id from bookinfo as book group by book.id order by book.id desc
      

  4.   


    我知道这样运行是可以的,我想知道为什么
    select count(*) from bookinfo as book order by book.id desc; 是错误的
    why?
      

  5.   

    select count(*) from bookinfo as book  ----你这个只有1条记录,要下面这个排序有何用呢
    order by book.id desc