【发布时间】:2023-01-18 04:01:49
【问题描述】:
首先,我正在使用 plsql,并调整现有命令。我可能会从头开始做不同的事情。
我想做这样的事情,但这行不通。
UPDATE TABLE_NAME
SET COLUMN1 = FUNCTION1(...)
, COLUMN2 = FUNCTION2(..., COLUMN1)
;
理想情况下,我想避免这样做
UPDATE TABLE_NAME
SET COLUMN1 = FUNCTION1(...)
, COLUMN2 = FUNCTION2(..., FUNCTION1(...))
;
有没有办法实现这一点,也许是通过将 COLUMN1 的计算值存储到变量中? 例如,在 C 中,这样的事情是可能的。
COLUMN1 = VARIABLE_NAME = FUNCTION1(...)
或者也许通过位置引用它?这种语法不起作用,但我有一个模糊的想法,它可能是可能的。
UPDATE TABLE_NAME
SET COLUMN1 = FUNCTION1(...)
, COLUMN2 = FUNCTION2(..., {1})
;
谢谢。
【问题讨论】:
-
这(来自您的第一个查询):
COLUMN2 = FUNCTION2(..., COLUMN1)- 实际上 -COLUMN2 = FUNCTION2(..., NEW_VALUE_OF_COLUMN1),对吧?不是“原始”(旧)COLUMN1 值。这就是您的第二个查询所建议的。如果是这样,不幸的是,我没有更好的主意 - 目前,我认为第二个查询(你想避免的那个)是这样做的方法。如果有人提出更好的建议,我会很高兴;我会密切关注这个问题,并希望能学到一些新东西。 -
是的。我想要更好的方法
COLUMN2 = FUNCTION2(..., NEW_VALUE_OF_COLUMN1)
标签: plsql