0

我正在使用 Aster,因为有一些 groovy Random Forest Functions 可供使用。我的因变量或响应变量是布尔二分变量;一个 0 或 1。

当我通过选择的随机森林函数运行它时,它会创建响应变量的预测值。它调用此变量预测并自动将其创建为 VARCHAR(REALLY BIG INTEGER IN HERE)。

要进行一些计算,我只是希望将其转换为字符串中的整数。所有生成的字符串都是 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" ()

我很确定有很多精美而优雅的方法可以做到这一点。但我想我可以简单地把它变成一个整数以供将来计算?

4

1 回答 1

0

根据aster docs,操作列的选项有限。您不能更改列数据类型。

但是 aster 允许您更改 varchar 列的大小。您提到要转换为INTEGER,但我想在您的用例VARCHAR(1)中也可以。如果是,那么你可以去:

ALTER TABLE a0q892.zf_predict ADD prediction VARCHAR(1);

如果您确实需要INTEGER(或任何其他类型VARCHAR(n)),那么您必须按照旧方式进行:

  • 在表中创建一个具有正确类型的新列
  • 从旧列中填充
  • 删除旧列
  • 重命名新列

SQL紫菀:

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;
于 2018-12-06T21:33:58.447 回答