Pra*_*ati 22 sql t-sql sql-server-2012
我想基于第二个表中Select的值使用语句更新表中的多个列,以获取如下值:
UPDATE tbl1
SET (col1, col2, col3) = (SELECT colA, colB, colC
FROM tbl2
WHERE tbl2.id = 'someid')
WHERE tbl1.id = 'differentid'
Run Code Online (Sandbox Code Playgroud)
但是,它似乎不可能"设置"多个列名称 - 是否有替代方法而不是为每列编写单独的更新语句?
UPDATE tbl1
SET col1 = (SELECT colA FROM tbl2 WHERE tbl2.id = 'someid')
WHERE tbl1.id = 'differentid'
UPDATE tbl1
SET col2 = (SELECT colB FROM tbl2 WHERE tbl2.id = 'someid')
WHERE tbl1.id = 'differentid'
UPDATE tbl1
SET col3 = (SELECT colC FROM tbl2 WHERE tbl2.id = 'someid')
WHERE tbl1.id = 'differentid'
Run Code Online (Sandbox Code Playgroud)
Tev*_*o D 32
update tbl1
set col1 = a.col1, col2 = a.col2, col3 = a.col3
from tbl2 a
where tbl1.Id = 'someid'
and a.Id = 'differentid'
Run Code Online (Sandbox Code Playgroud)
这应该工作 -
Update Tbl1
SET
Col1 = B.ColA,
Col2 = B.ColB,
Col3 = B.ColC
FROM
Tbl2 B
Where
B.Id = 'Someid'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46164 次 |
| 最近记录: |