数据排序分组以及类型转换


数据排序

ORDERBY 子句位于 SELECT 语句的末尾,它允许指定按照一个列或者多个列进行排序,还可以指定排序方式是升序(从小到大排列, ASC )还是降序(从大到小列, DESC )。
按照年龄升序排序所有学生信息的列表: SELECT * FROM Student ORDER BY sAge   ASC
按照英语成绩从大到小排序,如果英语成绩相同则按照数学成绩从大到小排序: SELECT * FROM Score ORDER BY english DESC,math DESC
ORDERBY 子句要放到 WHERE 子句之后: SELECT * FROM Score where english >=60 and math>=60 ORDER BY english DESC,math DESC
Orderby 语句一般要放到所有语句的后面,就是先让其他语句进行筛选,全部筛选完成后,最后排序一下。
表中数据是集合,集合是没有顺序的。 Order by 返回的数据是有顺序的,故此我们把 order by 以后返回的数据集合叫“游标”

数据分组

在使用 select 查询的时候,有时需要对数据进行分组汇总(即:将现有的数据按照某列来汇总统计),这时就需要用到 group by 语句。 select  语句中可以使用 group by  子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息。 // 分组一般都和聚合函数连用。

GROUPBY 子句必须放到 WHERE 语句的之后 ,Group By Order By 都是对筛选后的数据进行处理,而 Where 是用来筛选数据的。
没有出现在 GROUP BY 子句中的列是不能放到 SELECT 语句后的列名列表中的(聚合函数中除外)
错误: select sClassId,count ( sName ), sAge from student group by sClassId
正确: select sClassId,count ( sName ), avg ( sAge ) from student group by sClassId

Having 语句

对表中的数据分组后,会得到一个分组后的结果集,如何对该结果集在进行筛选?→  having
注意 Having 中不能使用未参与分组的列, Having 不能替代 where 。作用不一样, Having 是对组进行过滤。
Having GroupBy 的条件对分组后的数据进行筛选(与 Where 类似,都是筛选,只不过 having 是用来筛选分组后的组的。)
Where 中不能使用聚合函数,必须使用 Having Having 要位于 Group By 之后。
Having 的使用几乎是与 where 一样的,也可以用 in
Having count(*) in (5,8,10)

类型转换

•CAST( expression AS data_type)
•convert ( data_type,expression,[style])
Select‘ 您的班级编号’ +1  错误这里 + 是数学运算符
SELECT  FIdNumber ,
CAST ( RIGHT (sNo,3)  AS  INTEGER ) as   后三位的整数形式 ,
CAST ( RIGHT (sNo,3)  AS  INTEGER )+1  as  后三位加 1,
CONVERT ( INTEGER , RIGHT (sNo,3))/2  as 后三位除以 2
FROM student
对编号排序,但编号是字符串类型。 1 2 11 3 21 36…
对日期的转换。转换成各种国家格式的日期。
select convert(varchar( 20 ),getdate(), 104 )
Style 的格式,查 sql 帮助。(输入 convert 函数查询)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值