sql - 将列类型从文本更改为整数
问题描述
我有类型的列,text
我需要将列类型更改为整数。
我尝试使用以下脚本来做到这一点
ALTER TABLE table ALTER COLUMN column TYPE integer
显然我得到一个错误。
"Word1"
但是,如果我以前的值是这样的,我该如何修改我的脚本,"Word2"
现在我想保持它们的样子0
,1
0
如果可能的话,如果在处理这个脚本时这个脚本将设置为所有行,我会好的。
解决方案
如果您的列仅包含整数值,请尝试以下方法:
ALTER TABLE test ALTER COLUMN id TYPE integer USING (id::integer);
如果您的列包含非数字值,请尝试以下方式:
ALTER TABLE test ALTER COLUMN id TYPE integer USING (CASE
WHEN id~E'^\\d+$' THEN
CAST (id AS INTEGER)
ELSE
0
END);
推荐阅读
- python - 当列满足基于另一列的特定条件时,有没有办法迭代地查找数据帧的索引?
- sql - 难以置信,Oracle 不时返回不同的查询结果
- assembly - 在我的输出以 - 符号开头时出现错误
- html - 在 img 上显示 X
- amazon-web-services - 允许用户向客户发送时事通讯时如何控制 SES 声誉?
- xcode - 如何通过路径在 Xcode 中打开文件?
- r - R删除数据框列的底部x%并将顶部加倍
- python - 从 pandas 数据帧批量更新 peewee 数据库的最有效方法
- javascript - 如何更新页面源
- chart.js - 如何使用 Jquery 删除 canvasjs 中的试用版水印(无许可证)