我使用Aster是因为有一些非常棒的随机森林函数可以使用。我的被依赖变量或响应变量是一个布尔型二分变量;0或1。
当我运行随机森林函数时,它会创建响应变量的预测值。它将此变量称为预测,并自动将其创建为VARCHAR(此处为真正的大整数)。
为了做一些计算,我只是希望将它从字符串转换或转换为整数。所有生成的字符串要么是0,要么是1:
alter table a0q892.zf_predict alter column prediction int;不起作用。我收到的错误消息是:
Executed as Single statement.
Failed [34 : 42000] [AsterData][ASTERJDBCDSII](34) ERROR: syntax error at or near "int" ()我很确定有很多花哨而优雅的方法可以做到这一点。但是我想我可以简单地把它变成一个整数,用于将来的计算?
发布于 2018-12-07 05:33:58
根据the aster docs,操作列的选项有限。不能更改列数据类型。
但是,aster允许您更改varchar列的大小。您提到希望强制转换为INTEGER,但我猜在您的用例中VARCHAR(1)也可以。如果是,那么你可以去:
ALTER TABLE a0q892.zf_predict ADD prediction VARCHAR(1);如果你真的需要一个INTEGER (或者VARCHAR(n)以外的任何其他类型),那么你必须按照老方法来处理:
SQL Aster:
ALTER TABLE a0q892.zf_predict ADD prediction_new int;
UPDATE TABLE a0q892.zf_predict SET prediction_new = CAST(prediction AS int);
ALTER TABLE a0q892.zf_predict DROP prediction;
ALTER TABLE a0q892.zf_predict RENAME prediction_new TO prediction;https://stackoverflow.com/questions/53659509
复制相似问题