Update statement using with clause

前端 未结 3 1797
醉梦人生
醉梦人生 2020-12-24 01:04

I have a script that uses a stack of with clauses to come up with some result, and then I want to write that result in a table. I just can\'t get my head around it, could so

3条回答
  •  轮回少年
    2020-12-24 01:41

    You can always do something like this:

    update  mytable t
    set     SomeColumn = c.ComputedValue
    from    (select *, 42 as ComputedValue from mytable where id = 1) c
    where t.id = c.id 
    

    You can now also use with statement inside update

    update  mytable t
    set     SomeColumn = c.ComputedValue
    from    (with abc as (select *, 43 as ComputedValue_new from mytable where id = 1
             select *, 42 as ComputedValue, abc.ComputedValue_new  from mytable n1
               inner join abc on n1.id=abc.id) c
    where t.id = c.id 
    

提交回复
热议问题