如果 PostgreSQL 中的列同时包含 int 和 NULL 值,如何将文本转换为 int
如标题所示。我有一列包含一些文本值。例如,列 data1 具有值 ('31',32','',NULL)。现在我想用 data1 中的数据更新另一列 data2 (类型 INT),所以我尝试做类似的事情:
UPDATE table SET data2=CAST(data1 AS INT).
问题是因为 PostgreSQL 无法将 NULL 或空值转换为 INT。
As in title. I have one column which has some text values. For example column data1 has values ('31',32','',NULL). Now I want to update another column say data2 (type INT) with data from data1, so I am trying to do something like that:
UPDATE table SET data2=CAST(data1 AS INT).
The problem is because PostgreSQL cannot cast NULL or empty values to INT.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
实际上,您可以将
NULL
转换为 int,只是不能将空字符串转换为 int。假设如果data1
包含空字符串或 NULL,您希望在新列中使用 NULL,您可以执行以下操作:如果您想要其他逻辑,您可以使用例如(空字符串转换为 -1 ):
Actually, you can cast
NULL
to int, you just can't cast an empty string to int. Assuming you want NULL in the new column ifdata1
contains an empty string or NULL, you can do something like this:If you want some other logic, you can use for example (empty string converts to -1):