先说说ORDER BY和GROUP BY的功能
假设一个表tab有一个id字段、一个Name字段,内容如下
id Name
3 张三
5 李四
1 王五
1 赵六
ORDER BY是排序
select id from tab order by id这条SQL的结果应该是
id
1
1
3
5
GROUP BY是分组,相同的组别仅显示一次
select id from tab group by id这条SQL的结果应该是
id
1
3
5
另外在select后接N个字段,比如id,Name两个字段,然后Group By后接id
select id,Name from tab group by id这样的SQL是会报错的,因为你必须将group by以外的字段,用聚合函数聚合起来(如max,min,Count等)
然后回到上面的问题:
如果题主的原意是用GROUP BY,按nane和number字段分组,那么其他字段你打算如何聚合,是用MAX取最大值、MIN取最小值、Count统计出现的次数、还是利用自定义函数(Mysql和ORACL有系统自带函数)来将其拼接文本
如果题主的原意是用ORDER BY,按nane和number字段排序
select * from tab ordey by name ASC,number ASC--ASC是正序排列,DESC是倒序排列,不填写的情况下默认ASC
数据库的排序用order by语句实现。
工具:sqlserver 2008R2
步骤:
1、有如下学生表:
2、现要求按学号正序(由小到大)的顺序进行输出,语句如下:
select * from 学生 order by 学号查询结果:
3、再要求按学号正序(由大到小)的顺序进行输出,语句如下:
select * from 学生 order by 学号 desc结果:
sql取当前日期,对于mssqlserver,oracle,selectgetdate()即可,不过这个不是本机时间,是数据服务器的时间不同的服务,函数不定相同,如access用selectnow(),这个倒是本机时间。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)