SQLPathLab
条件与 NULL · 进阶

CAST

转换字段数据类型

简介

CAST(expression AS type) 显式说明希望得到的数据类型,可用于数值计算、日期比较和输出格式对齐。转换并不等于数据有效:非法文本在不同数据库和 SQL 模式下可能报错、截断或得到特殊值,因此批量转换前应先识别异常数据。

基础语法

SELECT CAST(amount AS DECIMAL(10,2)) AS amount_num FROM orders;

示例

CAST 示例

示例把 amount 转为 DECIMAL(10,2),强调精度和小数位属于结果契约,而不是单纯的显示格式。

示例数据表

表名:orders
orders
amount
1200
900
1500
700

运行结果

result
amount_num
1200.0
900.0
1500.0
700.0

常见问题

无效文本转换成数字会怎样?

结果取决于数据库、版本和 SQL 模式,可能报错、返回特殊值或产生警告;导入前应先识别不合法数据。

金额为什么不应随意转成 FLOAT?

FLOAT 是近似数;金额通常应使用带明确精度和小数位的 DECIMAL,避免累计误差。

WHERE 中对索引字段 CAST 有什么风险?

在字段外包一层函数可能使普通索引无法直接用于查找;能转换常量或统一存储类型时更稳妥。

标签

条件判断

这篇内容是否清楚?