mysql第二天

排序查询

语法:

order by 排序字段 【asc(升序)|desc(降序)】ps:默认为升序排序

例  查询姓名和成绩按照成绩降序排列

SELECT
name,grades
FROM
schoollists
ORDER BY grades DESC;

例 按年薪的高低显示员工的信息和年薪(年薪计算salary*12*(1+奖金率))

SELECT *,salary*12*(1+IFNULL(奖金率,0))
/*IFNULL(int,int)判断是否为NULL 如果为NULL返回第二个函数值*/
FROM employees 
ORDER BY salary*12*(IFNULL(奖金率,0)) 
DESC;

ORDER BY的参数可以是表达式来排序也可以用别名来排序

SELECT *,salary*12*(1+IFNULL(奖金率,0)) 年薪
/*IFNULL(int,int)判断是否为NULL 如果为NULL返回第二个函数值*/
FROM employees 
ORDER BY 年薪
DESC;

例 查询员工信息(按多个字段排序),先按照工资排序,再按照员工编号排序(ps:排序的时候先按照工资排序,然后剩下工资相同的员工,再按照他们的员工编号排序)

SELECT
*
FROM
employees
ORDER BY
salary ASC, employee_id DESC;

PS:一般ORDER BY 子句放在语句的最后。

常见函数介绍

单行函数

①length() //获取参数值的字节个数

②concat(参数1,参数2) //拼接字符串

③upper() //将小写转化为大写

④lower() //将大写转化为小写

⑤substr('   ',x) //截取从x向后的所有字符串

⑥substr('   ',x,y) //截取从x开始长度为y的字符长度

⑦instr('子串1',‘子串2’) //返回子串2在子串1中的一次出现的第一个字符的索引

⑧trim('子串1',符号)   //去掉子串1中左右两边的`符号`中间保留

⑨rpad('子串',int x,‘y’) //右填充,指定x为长度,如果子串的长度不够在子串的右边填充y,lpad和rpad相同,只不过为左填充

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值