SQL:如何在UPDATE子句中应用函数(存储过程)来更改值?

时间:2016-01-13 12:58:14

标签: sql postgresql stored-procedures sql-update

以下函数删除text或varchar列中的所有空格,并将修改后的text / varchar作为int返回:

 select condense_and_change_to_int(number_as_text_column) from mytable;

这个确切的查询确实有效。

虽然我的目标是将此函数应用于列的所有行,以便始终如一地更改其值。我该怎么做?是否可以使用UPDATE子句,或者我是否需要在函数本身内执行此操作?我尝试了以下方法:

UPDATE mytable
SET column_to_be_modiefied = condense_and_change_to_int(column_to_be_modiefied);

基本上我想输入当前行的值,修改它并将其永久保存到列中。

我欢迎所有关于如何解决这些方案的想法。我正在使用postgresql(但也欢迎更一般的解决方案)。

1 个答案:

答案 0 :(得分:0)

是否可以使用update?嗯,是的,等等。

根据您的描述,函数的输入是某种字符串。输出是一个数字。通常,应将数字分配给具有数字类型的列。假设有问题的列是一个数字。

但是,您的更新应该有效。结果将是数字的字符串表示。

运行更新后,您可以更改列类型,例如:

alter table mytable alter column column_to_be_modiefied  int;