首页 > MySQL > SQL 入门教程 > 39 SQL 转换函数

SQL 转换函数

1. 前言

慕课解释:SQL 内置的转换函数主要用于对字段进行类型转换,尝试从一种字段类型转换为另一种字段类型。

本小节,我们将一起学习 SQL 中的转换函数。

SQL 提供了诸多数据类型,如现在十分新潮的json类型,但我们没办法直接来声明一个值为 json 类型,因此 SQL 提供了转换函数来帮助我们转换值的类型。

2. 实践

在 SQL 中,常见的转化函数有两个:

函数名 作用
CAST 数据类型转换,参数为表达式,由AS连接,如 24.0 AS int
COLALESCE 任意多个参数,返回第一个非空的参数

2.1 例1 转化数值类型

通过CAST我们可以把 float 类型转化为 decimal 类型,如下:

SELECT CAST(123.123 AS decimal(8,1));



+-------------------------------+
| CAST(123.123 AS decimal(8,1)) |
+-------------------------------+
| 123.1                         |
+-------------------------------+

在 MySQL 中 CAST 无法将 float 类型转换为 int 类型,它会报错,而在 PostgreSQL 中却可以正常工作:

SELECT CAST(123.123 AS int);



 int4
------
  123

2.2 例2 字符串转 json

CAST还可以将符合 json 规范字符串类型转化为 json 类型。

SELECT CAST('{"a":"b"}' AS json);



+---------------------------+
| CAST('{"a":"b"}' AS json) |
+---------------------------+
| {"a": "b"}                |
+---------------------------+

2.3 例3 第一个非空值

COLALESCE用于返回参数列表中的第一个非空数值。

SELECT COALESCE(null,1,2);



+--------------------+
| COALESCE(null,1,2) |
+--------------------+
| 1                  |
+--------------------+

参数列表中共有 null、1、2 三个参数,COLALESCE 函数返回了第一个非空的参数,即 1。

3. 小结

  • 绝大多数情况下,你都不需要显示的通过 CAST 来进行类型转换,数据库会自动转换类型。
  • CAST 在不同的数据库中实现差异较大,迁移性比较差,尽量不要使用。
本文来自互联网用户投稿,不拥有所有权,该文观点仅代表作者本人,不代表本站立场。
访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站,邮箱:80764001@qq.com,予以删除。
© 2023 PV138 · 站点地图 · 免责声明 · 联系我们 · 问题反馈