我想要这样的事情:
UPDATE tab1
SET name = descr = proc1(name)
WHERE id < 1000
与双重调用不同:
UPDATE tab1
SET name = proc1(name),
descr = proc1(name)
WHERE id < 1000
这可能吗?
答案 0 :(得分:0)
不像你写的那样。我假设调用proc1
是昂贵/耗时的?如果是这样,您可以使用子查询,但需要额外加入:
UPDATE tab1
SET name = p.p1n
descr = p.p1n
FROM (
SELECT id, proc1(name)
FROM tab1
) p(id, p1n)
WHERE tab1.id = p.id
AND tab1.id < 1000;