sql 转换函数
1. 前言
sql 提供了诸多数据类型,如现在十分新潮的json
类型,但我们没办法直接来声明一个值为 json 类型,因此 sql 提供了转换函数来帮助我们转换值的类型。
2. 实践
函数名 | 作用 |
---|---|
CAST | 数据类型转换,参数为表达式,由AS连接,如 24.0 AS int |
COLALESCE | 任意多个参数,返回第一个非空的参数 |
2.1 例1 转化数值类型
通过CAST
我们可以把 float 类型转化为 decimal 类型,如下:
SELECT CAST( AS decimal(,));
+-------------------------------+ | CAST(123.123 AS decimal(8,1)) | +-------------------------------+ | 123.1 | +-------------------------------+
在 MysqL 中 CAST 无法将 float 类型转换为 int 类型,它会报错,而在 Postgresql 中却可以正常工作:
SELECT CAST( 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,,);
+--------------------+ | COALESCE(null,1,2) | +--------------------+ | 1 | +--------------------+
参数列表中共有 null、1、2 三个参数,COLALESCE 函数返回了第一个非空的参数,即 1。