MySQL之排序与单行处理函数怎么使用


1.排序

mysql支持数据排序操作,例如,现在我们按照工资从小到大进行排序操作:

mysql> select ename,sal from emp order by sal;
+--------+---------+
| ename  | sal     |
+--------+---------+
| SMITH  |  800.00 |
| JAMES  |  950.00 |
| ADAMS  | 1100.00 |
| WARD   | 1250.00 |
| MARTIN | 1250.00 |
| MILLER | 1300.00 |
| TURNER | 1500.00 |
| ALLEN  | 1600.00 |
| CLARK  | 2450.00 |
| BLAKE  | 2850.00 |
| JONES  | 2975.00 |
| SCOTT  | 3000.00 |
| FORD   | 3000.00 |
| KING   | 5000.00 |
+--------+---------+
14 rows in set (0.00 sec)

如果需要降序排序的话,需要指定desc:(默认为升序排序,如果您进行指定的话,指定为asc即可)

mysql> select ename,sal from emp order by sal desc;
+--------+---------+
| ename  | sal     |
+--------+---------+
| KING   | 5000.00 |
| SCOTT  | 3000.00 |
| FORD   | 3000.00 |
| JONES  | 2975.00 |
| BLAKE  | 2850.00 |
| CLARK  | 2450.00 |
| ALLEN  | 1600.00 |
| TURNER | 1500.00 |
| MILLER | 1300.00 |
| WARD   | 1250.00 |
| MARTIN | 1250.00 |
| ADAMS  | 1100.00 |
| JAMES  |  950.00 |
| SMITH  |  800.00 |
+--------+---------+
14 rows in set (0.00 sec)

更复杂的情况,为多字段排序:

比如我们想按照薪资升序排列,薪资一样的情况下,按照名字降序排序:

mysql> select ename,sal from emp order by sal,ename desc;
+--------+---------+
| ename  | sal     |
+--------+---------+
| SMITH  |  800.00 |
| JAMES  |  950.00 |
| ADAMS  | 1100.00 |
| WARD   | 1250.00 |
| MARTIN | 1250.00 |
| MILLER | 1300.00 |
| TURNER | 1500.00 |
| ALLEN  | 1600.00 |
| CLARK  | 2450.00 |
| BLAKE  | 2850.00 |
| JONES  | 2975.00 |
| SCOTT  | 3000.00 |
| FORD   | 3000.00 |
| KING   | 5000.00 |
+--------+---------+
14 rows in set (0.00 sec)

排序结合条件进行查找:

要求找出薪资在1250到3500之间,按照薪资降序排序:

mysql> select ename,sal from emp where sal between 1250 and 3500 order by sal desc;
+--------+---------+
| ename  | sal     |
+--------+---------+
| SCOTT  | 3000.00 |
| FORD   | 3000.00 |
| JONES  | 2975.00 |
| BLAKE  | 2850.00 |
| CLARK  | 2450.00 |
| ALLEN  | 1600.00 |
| TURNER | 1500.00 |
| MILLER | 1300.00 |
| WARD   | 1250.00 |
| MARTIN | 1250.00 |
+--------+---------+
10 rows in set (0.00 sec)

2.单行处理函数

处理完一行再处理下一行:(一个输入对应一个输出)

内容转小写

mysql> select lower(ename) from emp;
+--------------+
| lower(ename) |
+--------------+
| smith        |
| allen        |
| ward         |
| jones        |
| martin       |
| blake        |
| clark        |
| scott        |
| king         |
| turner       |
| adams        |
| james        |
| ford         |
| miller       |
+--------------+
14 rows in set (0.00 sec)

内容转大写

mysql> select upper(ename) from emp;
+--------------+
| upper(ename) |
+--------------+
| SMITH        |
| ALLEN        |
| WARD         |
| JONES        |
| MARTIN       |
| BLAKE        |
| CLARK        |
| SCOTT        |
| KING         |
| TURNER       |
| ADAMS        |
| JAMES        |
| FORD         |
| MILLER       |
+--------------+
14 rows in set (0.00 sec)

取子串

例如:我们想要取到每个名字的第一个字母:

mysql> select substr(ename,1,1) from emp;
+-------------------+
| substr(ename,1,1) |
+-------------------+
| S                 |
| A                 |
| W                 |
| J                 |
| M                 |
| B                 |
| C                 |
| S                 |
| K                 |
| T                 |
| A                 |
| J                 |
| F                 |
| M                 |
+-------------------+
14 rows in set (0.00 sec)

字符串拼接

拼接每个人的empno和ename:

Mootion Mootion

Mootion是一个革命性的3D动画创作平台,利用AI技术来简化和加速3D动画的制作过程。

Mootion 232 查看详情 Mootion
mysql> select concat(empno,ename) from emp;
+---------------------+
| concat(empno,ename) |
+---------------------+
| 7369SMITH           |
| 7499ALLEN           |
| 7521WARD            |
| 7566JONES           |
| 7654MARTIN          |
| 7698BLAKE           |
| 7782CLARK           |
| 7788SCOTT           |
| 7839KING            |
| 7844TURNER          |
| 7876ADAMS           |
| 7900JAMES           |
| 7902FORD            |
| 7934MILLER          |
+---------------------+
14 rows in set (0.00 sec)

求长度

取出每个人名字的字符数:

mysql> select length(ename) from emp;
+---------------+
| length(ename) |
+---------------+
|             5 |
|             5 |
|             4 |
|             5 |
|             6 |
|             5 |
|             5 |
|             5 |
|             4 |
|             6 |
|             5 |
|             5 |
|             4 |
|             6 |
+---------------+
14 rows in set (0.00 sec)

去除前后空白

查询名字为KING的详细信息,不包含前后空白:

mysql> select * from emp where ename = trim('KING ');
+-------+-------+-----------+------+------------+---------+------+--------+
| EMPNO | ENAME | JOB       | MGR  | HIREDATE   | SAL     | COMM | DEPTNO |
+-------+-------+-----------+------+------------+---------+------+--------+
|  7839 | KING  | PRESIDENT | NULL | 1981-11-17 | 5000.00 | NULL |     10 |
+-------+-------+-----------+------+------------+---------+------+--------+
1 row in set (0.00 sec)

四舍五入

对123.456保留0位小数

mysql> select round(123.456,0) from emp;
+------------------+
| round(123.456,0) |
+------------------+
|              123 |
|              123 |
|              123 |
|              123 |
|              123 |
|              123 |
|              123 |
|              123 |
|              123 |
|              123 |
|              123 |
|              123 |
|              123 |
|              123 |
+------------------+
14 rows in set (0.00 sec)

生成随机数

生成0到1的随机小数:

mysql> select rand() from emp;
+---------------------+
| rand()              |
+---------------------+
| 0.06316715857309024 |
|  0.5963954959031152 |
|  0.7924760345299505 |
| 0.17319371567405176 |
| 0.48854050551405226 |
|   0.923121411281751 |
|  0.1499855706002429 |
|  0.9805636498896066 |
|  0.4528615683809496 |
|  0.3226169229695731 |
| 0.25449994043866164 |
|   0.304648964018234 |
|    0.75974502950883 |
|  0.8847782862230933 |
+---------------------+
14 rows in set (0.00 sec)

空转换

数据库中对于NULL进行运算结果一定为NULL 于是就有了NULL处理函数

例如:计算每个员工的年收入(月薪+月奖金):

mysql> select ename,job,sal,
    -> (case job when 'MANAGER' then sal*1.1 when 'SALESMAN' then sal*1.5 else sal*1.2 end) as newsal
    -> from emp;
+--------+-----------+---------+---------+
| ename  | job       | sal     | newsal  |
+--------+-----------+---------+---------+
| SMITH  | CLERK     |  800.00 |  960.00 |
| ALLEN  | SALESMAN  | 1600.00 | 2400.00 |
| WARD   | SALESMAN  | 1250.00 | 1875.00 |
| JONES  | MANAGER   | 2975.00 | 3272.50 |
| MARTIN | SALESMAN  | 1250.00 | 1875.00 |
| BLAKE  | MANAGER   | 2850.00 | 3135.00 |
| CLARK  | MANAGER   | 2450.00 | 2695.00 |
| SCOTT  | ANALYST   | 3000.00 | 3600.00 |
| KING   | PRESIDENT | 5000.00 | 6000.00 |
| TURNER | SALESMAN  | 1500.00 | 2250.00 |
| ADAMS  | CLERK     | 1100.00 | 1320.00 |
| JAMES  | CLERK     |  950.00 | 1140.00 |
| FORD   | ANALYST   | 3000.00 | 3600.00 |
| MILLER | CLERK     | 1300.00 | 1560.00 |
+--------+-----------+---------+---------+
14 rows in set (0.00 sec)

以上就是MySQL之排序与单行处理函数怎么使用的详细内容,更多请关注其它相关文章!


# 第一个  # html网站建设代码  # 建设银行员工网站  # 营销推广情景模拟实训  # 专注外贸网站建设营销  # 武鸣区网络营销推广  # 中阳网站推广平台官网下载  # 优化网站开发解决方案  # 黑帽seo难吗  # 陇南网络营销推广运营招聘  # 罗源推广网站搭建价格多少  # MySQL  # 随机数  # 如果您  # 是一个  # 如何设置  # 多字  # 降序  # 每个人  # 升序  # 镜像 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: mysql如何限制远程访问_mysql远程访问限制方法  多多买菜门店端app订单查看方法  抖音小程序怎么开通?小程序开通条件是什么?  解决Go encoding/json 将JSON大数字解析为浮点数的问题  Win10关闭UAC用户账户控制的方法 Win10降低安全提示等级【技巧】  金牛福袋获取攻略  Excel怎么用XLOOKUP函数实现双向查找_ExcelXLOOKUP替代VLOOKUP+HLOOKUP的高级用法  J*aScript深度克隆:实现高效、健壮与安全的复杂对象复制  悟空浏览器网页版在线工具 悟空浏览器网页版在线平台入口  顺丰快递怎么查物流_顺丰快递物流信息实时查询操作指南  京东快递包裹信息查询入口 京东快递官方查询平台入口  微星主板BIOS怎么调整内存时序_内存参数手动优化BIOS设置教程  126邮箱网页在线登录2025_126邮箱网页版入口官方地址  狙击外星人小游戏在线链接_狙击外星人小游戏网页链接  C++ cast类型转换总结_C++ reinterpret_cast与const_cast的使用  VS Code快捷键when上下文子句的妙用  顺丰快递在线查询系统 顺丰快递官方查单入口  PHP页面重载后变量状态保持:实现用户档案连续浏览的教程  抖音火山版如何进行提现  FullCalendar自定义按钮样式定制指南  《tt语音》超级玩家开通方法  MySQL多重JOIN技巧:高效关联同一表获取多角色信息  《红果免费短剧》下载观看方法  《地下城堡4:骑士与破碎编年史》墓穴挑战125攻略  windows server2019显卡驱动怎么安装_winserver2019显卡驱动安装与远程桌面优化  在XML中嵌入二进制数据(如图片)的最佳实践是什么? Base64编码与解析注意事项  iPhone 15 Pro如何查看存储空间占用_iPhone 15 Pro存储空间查看教程  iPhone12是否要更新ios16  iQOO手机信号差网络不稳定怎么办 信号问题原因排查与增强设置【攻略】  《真我》申请退款方法  邮编号码查询app有哪些_邮编号码查询推荐app及使用体验  cad怎么隐藏指定的图层_cad隐藏或冻结图层方法  Golang如何使用log记录日志信息_Golang log日志记录方法总结  学习通网页版个人登录_学习通网页版个人账户登录入口  Sublime怎么自动添加CSS前缀_Sublime安装Autoprefixer插件  MongoDB聚合管道:高效统计列表中各项的文档数量  汽水音乐网页端访问 汽水音乐官方网页直达  快手缓存清理方法  哔哩哔哩的|直播|间怎么送礼物_哔哩哔哩|直播|送礼操作指南  火狐浏览器如何刷新修复浏览器 火狐浏览器“重置Firefox”功能详解  J*aScript实现网页表单实时输入字段比较与验证教程  晨报|开发商暗示《空洞骑士:丝之歌》DLC开发中 《合金装备4》有望重制  《咸鱼之王》新版孙坚技能解析  CSS绝对定位与溢出控制:实现背景元素局部显示不触发滚动条  iPhone 14 Pro如何更改区域设置_iPhone 14 Pro地区语言修改教程  泰拉瑞亚水晶无法放置问题  MacBook Pro词典使用指南  苹果自助维修计划支持哪些设备机型  WooCommerce 购物车:始终显示所有交叉销售商品  CodeIgniter 3 连接 SQL Server:正确获取查询结果的教程 

 2023-06-01

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.