今天在sql資料庫操作時需要將一張表中的資料update到另一張表中去, 可是用我以往的寫法確怎麼也不能成功.**如下:
updatetable1 a
set a.col1=
b.col2
from
table2 b
where a.c=b.c
上面的寫法似乎是在oracle的環境下可以實現的, (具體沒有驗證過) 反正在sql server中是無法執行. 上網找了一下終於找到了解決方法, 如下:
oralce和db2都支援的語法:
update a set (a1, a2, a3) = (select b1, b2, b3 from b where a.id = b.id)
ms sql server不支援這樣的語法,相對應的寫法為:
update a set a1 = b1, a2 = b2, a3 = b3 from a left join b on a.id = b.id
個人感覺ms sql server的update語法功能更為強大。ms sql server的寫法:
update a set a1 = b1, a2 = b2, a3 = b3 from a, b where a.id = b.id
在oracle和db2中的寫法就比較麻煩了,如下:
update a set (a1, a2, a3) = (select b1, b2, b3 from b where a.id = b.id) where id in (select b.id from b where a.id = b.id)
沒有整理與歸納的知識,一文不值!高度概括與梳理的知識,才是自己真正的知識與技能。 永遠不要讓自己的自由、好奇、充滿創造力的想法被現實的框架所束縛,讓創造力自由成長吧! 多花時間,關心他(她)人,正如別人所關心你的。理想的騰飛與實現,沒有別人的支援與幫助,是萬萬不能的。
關於SQL中的Update語句
今天在sql資料庫操作時需要將一張表中的資料update到另一張表中去,可是用我以往的寫法確怎麼也不能成功.如下 update table1 a set a.col1 b.col2 from table2 b where a.c b.c 上面的寫法似乎是在oracle的環境下可以實現的,具體沒有驗證...
SQL語句 UPDATE語句
update students set sname abcd gender 1 where sid 1 update students,students2 set students.sname students2.sname,students.gender students2.gender wher...
關於Update語句的鎖
環境 mssql2005,在read committed級別 語句a begin tran update table set f1 where f2 ttt 更新一行或多行 commit 注意為了看到效果這裡把commit注釋了 語句a影響的行集合為b 該語句造成的影響 1.該語句會阻塞,查詢結果集...