MSSQL 数据类型转换为整数

介绍

在 MSSQL 中,数据类型的转换是非常常见的操作。对于开发人员来说,需要掌握常用数据类型之间的转换方式,尤其是将一些字符串类型转换成整数类型的操作,这在编写 SQL 查询语句时是非常常见的操作。

常用数据类型转换

将整数类型转换为字符串类型

在 MSSQL 中,将整数类型转换为字符串类型使用 CAST 函数 (或 CONVERT 函数)。对于整数类型可以使用以下的方法转换成字符串。

DECLARE @val INT = 100;

SELECT CAST( @val AS VARCHAR);

-- 或者

SELECT CONVERT( VARCHAR, @val);

上述语句将整数类型的变量 @val 转换为字符串类型。

将字符串类型转换为整数类型

将字符串转换成整数类型,可以使用 CAST 函数 (或 CONVERT 函数),也可以使用 TRY_CONVERT 函数。

CAST 函数

这是最常见的 SQL 转换函数之一可以将字符串类型转换成整数类型。

SELECT CAST('100' AS INT);

-- 或者

SELECT CAST('100' AS INTEGER);

CONVERT 函数

该函数功能与 CAST 函数相似,可以将字符串类型转换成整数类型,不同之处在于 CONVERT 函数可以使用格式化字符串指定要转换的输出格式。

SELECT CONVERT(INT, '100');

-- 或者

SELECT CONVERT(INTEGER, '100');

-- 带格式化的转换

SELECT CONVERT(INT, '1,000');

SELECT CONVERT(INT, '$ 1000.55', 1);

TRY_CONVERT 函数

TRY_CONVERT 函数与 CONVERT 函数的功能相同,但无法确定数据是否可以成功转换。TRY_CONVERT 函数不会抛出转换失败的异常,而是返回 NULL 值。这可以用来判断字符串是否是能够转换成整数类型。

SELECT TRY_CONVERT(INT, '100');

-- 如果无法转换,则结果为 NULL

SELECT TRY_CONVERT(INT, 'abc');

实例演练

将字符串转换成整数

假设我们有一个包含年龄的字符串列表,我们需要将字符串转换成整数以进行统计和汇总工作

DECLARE @ageList TABLE (id INT IDENTITY(1,1), age VARCHAR(10));

INSERT INTO @ageList(age) VALUES ('23'), ('24'), ('18'), ('32'), ('1'), (''), ('78');

SELECT id, age, ISNULL(TRY_CONVERT(INT, age), 0) AS Age2 FROM @ageList;

使用 TRY_CONVERT 函数,我们将 age 字符串字段转换成名为 Age2 的整数字段。如果字符串无法转换,则使用 ISNULL 函数将 Age2 字段设为 0。

将浮点数转换成整数

在 SQL 查询语句中,有时需要将浮点数值转换成整数,可以使用 CAST 或 CONVERT 函数来达到目的。

DECLARE @floatValue FLOAT = 12.34;

SELECT CAST( @floatValue AS INT);

以上实例将 12.34 的浮点数转换成整数类型并输出结果。

总结

到这里,我们了解了在 MSSQL 中常用的数据类型转换方法。对于开发人员来说,经常需要转换数据类型,因此理解数据类型之间的转换方法是非常重要的。

数据库标签