SQL 转换函数
1. 前言
编程之家解释: 内置的转换主要用于对字段进行类型转换
,尝试从一种字段类型转换为另一种字段类型。
本小节,我们将一起学习 中的转换。
提供了诸多数据类型,如现在十分新潮的json
类型,但我们没办法直接来声明值为 json 类型,因此 提供了转换来帮助我们转换值的类型。
2. 实践
在 中,常见的转化有两个:
通过CAST
我们可以把 float 类型转化为 decimal 类型,如下:
SELECT CAST( AS decimal(,));
+-------------------------------+ | CAST(123.123 AS decimal(8,1)) | +-------------------------------+ | 123.1 | +-------------------------------+
在 中 CAST 无法将 float 类型转换为 int 类型,它会报错,而在 Postgre 中却可以正常工作:
SELECT CAST( AS int);
int4 ------ 123
CAST
还可以将符合 json 规范字符串类型转化为 json 类型。
SELECT CAST('{"a":"b"}' AS json);
+---------------------------+ | CAST('{"a":"b"}' AS json) | +---------------------------+ | {"a": "b"} | +---------------------------+
COLALESCE
用于返回参数列表中的第非空数值。
SELECT COALESCE(null,,);
+--------------------+ | COALESCE(null,1,2) | +--------------------+ | 1 | +--------------------+
参数列表中共有 null、1、2 三个参数,COLALESCE 返回了第非空的参数,即 1。
3. 小结
绝大多数情况下,你都不需要的通过 CAST 来进行类型转换,会转换类型。
CAST 在不同的中实现差异较大,迁移性比较差,尽量不要使用。