sen*_*nin 1 sql postgresql null casting
如标题.我有一个列有一些文本值.例如,列data1具有值('31',32','',NULL).现在我想用data1中的数据更新另一列说data2(类型INT),所以我想尝试做类似的事情:
UPDATE table SET data2=CAST(data1 AS INT).
Run Code Online (Sandbox Code Playgroud)
问题是因为PostgreSQL无法将NULL或空值转换为INT.
实际上,你可以转换NULL为int,你只是不能将空字符串转换为int.假设如果data1包含空字符串或NULL,则在新列中需要NULL,您可以执行以下操作:
UPDATE table SET data2 = cast(nullif(data1, '') AS int);
Run Code Online (Sandbox Code Playgroud)
如果你想要一些其他逻辑,你可以使用例如(空字符串转换为-1):
UPDATE table SET data2 = CASE WHEN data1 = '' THEN -1 ELSE cast(data1 AS int) END;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9029 次 |
| 最近记录: |