📜  在 sqlite 中将 varchar 转换为 int - SQL (1)

📅  最后修改于: 2023-12-03 15:37:31.975000             🧑  作者: Mango

在 SQLite 中将 varchar 转换为 int - SQL

在 SQLite 中,可以使用 CAST 函数将数据从一个数据类型转换为另一个数据类型。如果您想将一个 varchar 类型转换为 int 类型,可以使用以下语法:

SELECT CAST(column_name as INTEGER) FROM table_name;

这里的 column_name 是要转换的列名,而 table_name 是包含该列的表的名称。

例如,假设您有一个包含以下数据的表:

| id | name | |----|-------| | 1 | John | | 2 | Jane | | 3 | Alice |

如果您想将 name 列转换为 int 类型并将结果作为新列返回,可以执行以下查询语句:

SELECT CAST(name as INTEGER) AS name_int FROM your_table_name;

这将返回以下结果:

| name_int | |----------| | 0 | | 0 | | 0 |

由于 "John"、"Jane" 和 "Alice" 都不是有效的数字,因此我们得到了一个值为 0 的结果。

如果您希望只返回有效的数字,可以添加一个 WHERE 子句来过滤无效的数据,例如:

SELECT CAST(name as INTEGER) AS name_int FROM your_table_name WHERE name REGEXP '^[0-9]+$';

这将只返回有效的数字,例如:

| name_int | |----------| | 1 | | 2 | | 3 |

注意,这里使用了正则表达式来过滤无效的数据。如果您不熟悉正则表达式,可以先学习一下。

最后,需要注意的是,如果您尝试将一个非数字字符串转换为数字类型,SQLite 将返回一个错误。因此,在执行 CAST 函数之前,您需要确保要转换的值是有效的数字字符串。