国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

MS SQL中使用UPDATE ... INNER JOIN ...

2024-07-21 02:46:19
字體:
來源:轉載
供稿:網友
MS SQL中使用UPDATE ... INNER JOIN ...

昨天的SQL編程中,有使用到一個方法,就是把一個表某一字段更新至另一個表的字段中去。實現這個方法,Insus.NET有嘗試了幾個方法,下面一一分享出來,讓大家參考參考。下面的數據只是模擬了,形式與Insus.NET實際數據相似。使用臨時表,你真實表一樣。表一:代碼:

CREATE TABLE #Table1 ([Col1] INT NOT NULL PRIMARY KEY,[Col2] VARCHAR(10) NOT NULL,[Col3] VARCHAR(10) NULL)INSERT INTO #Table1 ([Col1],[Col2],[Col3]) VALUES (1,'GF',NULL),(2,'ER',NULL),(3,'SA',NULL),(4,'JK',NULL),(5,'RE',NULL)GO
View Code

表二:

代碼:

CREATE TABLE #Table2 ([Col1] INT NOT NULL,[Col2] VARCHAR(100) NOT NULL)INSERT INTO #Table2 ([Col1],[Col2]) VALUES(3,'TR'),(2,'QT'),(1,'JN'),(5,'LP'),(4,'TR')GO
View Code

查詢2張表的結果:

數據準備好了,看看要求,是需要把表2的Col2列值填充至表一的Col3上,2張表的對應主鍵均是Col1。

方法一:代碼:

DECLARE @r INT =1, @rs INT = 0SELECT @rs = MAX([Col1]) FROM #Table2WHILE @r <= @rsBEGIN    IF EXISTS(SELECT TOP 1 1 FROM #Table2 WHERE [Col1] = @r)    BEGIN        DECLARE @v VARCHAR(10)        SELECT @v = [Col2] FROM #Table2  WHERE [Col1] = @r        UPDATE #Table1 SET [Col3] = @v WHERE [Col1] = @r    END    SET @r = @r + 1END
View Code

看看執行結果:

方法二 ,也許不是真正更新,而是獲取結果:

代碼:

CREATE TABLE #t ([Col1] INT NOT NULL PRIMARY KEY,[Col2] VARCHAR(10) NOT NULL,[Col3] VARCHAR(10) NULL)INSERT INTO #t ([Col1],[Col2],[Col3]) SELECT t1.[Col1],t1.[Col2],t2.[Col2] FROM #Table1 AS t1INNER JOIN #Table2 AS t2 ON (t1.[Col1] = t2.[Col1])
View Code

得到的結果:

方法三,就是使用UPDATE ... INNER JOIN ...語法來處理,簡單:代碼:

UPDATE t1SET t1.[Col3] = t2.[Col2]FROM #Table1 AS t1INNER JOIN #Table2 AS t2 ON (t1.[Col1] = t2.[Col1])
View Code

執行結跟方法一的結果相同:


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 耿马| 前郭尔| 淳安县| 临沧市| 阜阳市| 芒康县| 永吉县| 监利县| 宜川县| 和平区| 盖州市| 南乐县| 从江县| 开阳县| 封开县| 华安县| 榆林市| 兴国县| 中超| 茶陵县| 怀远县| 手机| 抚顺市| 隆安县| 北流市| 石嘴山市| 随州市| 宾川县| 夏河县| 秦安县| 水富县| 遂平县| 宕昌县| 德江县| 松原市| 榆林市| 萨嘎县| 澄迈县| 竹溪县| 福建省| 清流县|