我有一个脚本,该脚本使用一堆with子句得出一些结果,然后将结果写到表中。我只是无法理解,有人可以指出我正确的方向吗?
这是一个简化的示例,指示我要执行的操作:
with comp as ( select *, 42 as ComputedValue from mytable where id = 1 ) update t set SomeColumn = c.ComputedValue from mytable t inner join comp c on t.id = c.id
真实的东西有很多with子句都相互引用,因此实际使用with子句的任何建议都比将其重构为嵌套子查询更可取。
提前致谢,
格特·简
如果有人跟随我来,这就是对我有用的答案。
注意:请先阅读注释,然后再使用此注释,此操作尚不完整。 我可以给出的更新查询的最佳建议是切换到SqlServer;)
update mytable t set z = ( with comp as ( select b.*, 42 as computed from mytable t where bs_id = 1 ) select c.computed from comp c where c.id = t.id )
祝你好运,
GJ