select uname from orderly_allsearch group by uname为什么不能写成 select * from orderly_allsearch group by uname
有一个打卡表 内容大概如下
uname  dates       moning      moon        afternoon    atnight
a      2010-5-1    09:00:00    12:05:00    13:25:00     18:05:00
b      2010-5-1    09:00:00    12:05:00    13:25:00     18:05:00
c      2010-5-1    09:00:00    12:05:00    13:25:00     18:05:00  
a      2010-5-2    09:00:00    12:05:00    13:25:00     18:05:00
b      2010-5-2    09:00:00    12:05:00    13:25:00     18:05:00
c      2010-5-2    09:00:00    12:05:00    13:25:00     18:05:00 
我想得到的结果是按姓名来排 也就是结果集先全部是a 再是b 再c
sql语句应该怎么写
最后 再推荐本sql学习的书吧 基本的应用我会 到麻烦的就写出不来
谢谢了   

解决方案 »

  1.   

    select * from orderly_allsearch order by uname
    ?
      

  2.   

    select * from orderly_allsearch order by uname
    排序就可以
      

  3.   

    group by 是分组统计的意思 一种聚合的意思
      

  4.   

    估計是你對分組group by 和排序order by不是很了解
    1.select * from orderly_allsearch group by uname
    不能這樣寫,具體估計你要看看分組的用法
    2.打卡表
    select * from 打卡表 order by uname
    這樣就可以了,達到了排序要求
    3.書籍
    推薦先看SQL入門或SQL深入淺出
    中後期推薦SQL3本技術內幕
      

  5.   

    没有聚合函数
    何来的group by
      

  6.   

    create table #TT1
    (
    uname varchar(20),
    dates datetime,
    moning nvarchar(8),
    moon nvarchar(8),
    afternoon nvarchar(8),
    atnight nvarchar(8),
    )
    insert into #TT1 select 'a','2010-5-1','09:00:00','12:05:00','13:25:00','18:05:00'
    union all
    select 'b','2010-5-1','09:00:00','12:05:00','13:25:00','18:05:00'
    union all
    select 'c','2010-5-1','09:00:00','12:05:00','13:25:00','18:05:00'
    union all
    select 'a','2010-5-2','09:00:00','12:05:00','13:25:00','18:05:00'
    union all
    select 'b','2010-5-2','09:00:00','12:05:00','13:25:00','18:05:00'
    union all
    select 'c','2010-5-2','09:00:00','12:05:00','13:25:00','18:05:00'select * from #TT1
    order by
    (
      case when uname='a' then 1
      else
      case when uname='b' then 2
      else
       case when uname='c' then 3
      else 4 end
      end
      end
    )uname                dates                   moning   moon     afternoon atnight
    -------------------- ----------------------- -------- -------- --------- --------
    a                    2010-05-01 00:00:00.000 09:00:00 12:05:00 13:25:00  18:05:00
    a                    2010-05-02 00:00:00.000 09:00:00 12:05:00 13:25:00  18:05:00
    b                    2010-05-02 00:00:00.000 09:00:00 12:05:00 13:25:00  18:05:00
    b                    2010-05-01 00:00:00.000 09:00:00 12:05:00 13:25:00  18:05:00
    c                    2010-05-01 00:00:00.000 09:00:00 12:05:00 13:25:00  18:05:00
    c                    2010-05-02 00:00:00.000 09:00:00 12:05:00 13:25:00  18:05:00(6 行受影响)
      

  7.   

    select * from orderly_allsearch order by uname
      

  8.   

    如果使用了GROUP BY子句进行分组查询,SELECT查询的列必须包含量在GROUP BY子句中或者包含在聚合函数中
    这点很重要
      

  9.   

    排序 用 order by 
      

  10.   


    select * from orderly_allsearch order by uname,dates
      

  11.   

    select * from orderly_allsearch group by uname
    用了星号,再用group by就要在group by 后面把表中所有的列都列出来,并用逗号隔开
      

  12.   


    select uname,count(字段a) from orderly_allsearch  group by uname