同表連線更新的sql

2021-04-27 01:12:53 字數 937 閱讀 1371

表com_resource

create table [dbo].[com_resource](

[resourceid] [bigint] not null,

[version] [varchar](30) collate chinese_prc_ci_as not null,

[languagecode] [varchar](10) collate chinese_prc_ci_as not null,

[resourcevalue] [nvarchar](max) collate chinese_prc_ci_as null,

[tmpresourceid] [nvarchar](max) collate chinese_prc_ci_as null,

constraint [pk_com_resource] primary key clustered

([resourceid] asc,

[version] asc,

[languagecode] asc

)with (ignore_dup_key = off) on [primary]

) on [primary]

goset ansi_padding off

資料如下圖

--想實現同表中將除了languagecode=en-us外的其它同version and 同resourceid的記錄的tmpresourceid值都更新成和languagecode=en-us的記錄的值.

update b set tmpresourceid=a.tmpresourceid

from com_resource b inner join com_resource a on b.resourceid=a.resourceid and b.languagecode='zh-cn'

where  a.languagecode='en-us'

SQL同表資料複製

在專案中可能需要用到同表資料複製,如 兩筆記錄除了日期和rowid 自動編號 其他資料均是一模一樣,一般的辦法就是讀取出來然後再插進去,即使寫到儲存過程裡面也一樣需要執行兩條sql語句,效率也比較低的。一條語句進行複製資料 insert into new table name column1,col...

SQL 表的連線

多表連線分為以下幾種型別 1 左聯結 left join 聯結結果保留左表的全部資料 2 右聯結 right join 聯結結果保留右表的全部資料 3 內聯結 inner join 取兩表的公共資料 關於多表連線,以及如何使用聯結的型別。記住下面這張圖即可 力扣175.組合兩個表 題目描述 題目要求...

SQL 連表更新

現在資料如下 需求如下 要求 更新 earnings 表中的earnings欄位 當 table 2 kpi 大於等於1時 earinings kpi 2000,否則等於 kpi 1500 1 update earnings 2set earnings 3 select 4case when tab...