在SQL中将各种类型转换为十进制类型

关于类型强制转换或类型转换,我们还能说些什么?对于使用SQL或任何其他编程语言的开发人员来说,类型转换是最基本和最常见的实践之一。

在SQL中,我们可以访问命名方便的cast()函数,它允许我们将值从一种数据类型强制转换为另一种数据类型。cast函数的常见用途是需要更改给定列或表达式的数据类型,然后执行特定操作或对结果类型进行比较。

在本指南中,我们将重点介绍SQL中的cast()函数,并学习如何使用它将各种类型转换为十进制类型。

最好记住,cast()函数的实现可能因目标数据库引擎而异。因此,请参考数据库的文档以了解更多信息。

函数的语法:

cast()函数的语法非常简单和直观。我们可以这样表达语法:

CAST(表达式作为data_type)

该函数接受两个主要参数:

  1. 表达式——这指的是我们希望转换为另一种类型的值、表达式或表列。
  2. Data_type—指定我们希望将输入表达式转换为的目标数据类型。

解决了这个问题后,让我们看一下cast()函数的一些示例用法。

例1:将Int类型转换为Decimal类型

最常见的类型转换操作之一是将整数转换为十进制值。例如,假设我们有一列整数值,我们希望将其转换为小数类型,以便进行更精确的计算。可以这样使用cast()函数:

选择CAST(value AS DECIMAL(10,2))作为decimal_values

从样本;

在本例中,我们有一个名为“values”的列,用于存储整数值。使用" cast "函数,我们快速将所有值转换为十进制,如下所示:

decimal_values |

--------------+

100.00 |

200.00 |

300.00 |

这提供了更精确的值计算。

注意:在给定的函数中,我们指定了目标数据类型,它是一个总共有10位数字的小数,其中有两位是为小数点保留的。

例2:将字符串转换为Decimal

另一种情况是将字符串转换为十进制值。例如,我们有一个包含数值的列,但它们被存储为字符串。这种情况很常见,尤其是在从外部源导入数据时。

我们可以使用" cast "函数将字符串中的值转换为小数,如下例所示:

SELECT CAST('49.99' AS DECIMAL(8,2)) AS dec;

这会将输入字符串转换为十进制表示,如下所示:

12月|

-------------+

49.99 |

好了!

示例3:处理NULL值

在现实世界中,您一定会遇到列中的行包含NULL值的情况。

虽然乍一看这似乎不是问题,但是当您需要将值转换为其他类型时,cast()函数将不能很好地将其转换为NULL值。

为了解决这个问题,最好优雅地处理NULL值。我们可以使用COALESCE函数在NULL的地方输入一个默认值。

以下面的查询为例:

SELECT CAST(COALESCE(column_name 0) AS DECIMAL(10,2))作为结果

从table_name;

前面的语法演示了如何使用coalesce()函数通过cast()函数处理NULL值。

结论

在本指南中,我们探讨了SQL中的“cast”函数,学习如何使用它将各种类型转换为十进制类型。我们介绍了函数语法和函数的示例用法。