成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

同表內記錄間的DB2更新語句

數據庫
更新語句是DB2數據庫中最常見的語句之一,如果同表內記錄進行更新,更新語句又應該如何寫呢?閱讀下文,您就可以找到答案。

下面為您介紹的DB2更新語句用于同表內記錄間的更新操作,該DB2更新語句供您參考,希望對您學習DB2更新語句方面能有所幫助。

兩個DB2更新語句,用于更新同表內符合條件的其它記錄。數據結構如下:

metadata_xt(id, subject_id, other_courseware_name, me_author, me_title, me_key, me_abstract)

其中id***;me_title也應***,但沒有約束,因此有可能重復(但即便重復,同一me_title值的不同記錄的其他字段必定相同,因此可以判作冗余,也即可以被過濾);其它均不***。所有字段非空。語句用于匹配的項為me_title,其模式可能為如下幾個:
'第__講 精簡版', '第_講 精簡版', '第__講 %' and !contains '精簡版'; '第_講 %' and !contains '精簡版'; 其它不以'第'開頭的模式。

語句如下,主要目的是將me_title為'第__講 精簡版'的記錄以me_title為僅相同開頭('第__講...')的另一條源記錄更新。更新后記錄為:
me_title:源記錄的me_title + ' (精簡版)';
其它字段:源記錄的相應字段值。

功能見注釋:

-- 首先更新用于匹配的關鍵項之外的字段
UPDATE DB2ADMIN.metadata_xt AS a
   SET (me_key,       -- DB2中可以通過這種方式同時為多個字段賦值,具體緣由可能與values語句有關,
       me_abstract,     -- 但是不確定,有待查證。
       subject_id,
       me_author
       ) =
         -- 這里通過distinct保證返回***一條記錄。子句中的where可以保證返回***的me_title值,但是
          -- 由于之前提到的有可能出現的me_title重復的錯誤,需要在此處確保相同me_title僅返回一條記錄。
          (SELECT distinct me_key, me_abstract, SUBJECT_ID, me_author
             FROM DB2ADMIN.metadata_xt AS b
            WHERE other_courseware_name = '房屋建筑學' -- 以該字段分組,每次update語句更新一組。
        AND b.ME_TITLE like '第%'         -- 忽略me_title不以'第'開頭的其它記錄
              AND                   -- 此處進行兩條記錄之間的me_title模式匹配
         ( left (b.ME_TITLE, 6) = left (a.ME_TITLE, 6)   -- 匹配前六個字符,如'第01講...'或'第55講...'
         OR        -- 若兩條記錄不都符合模式'第__講%',則源記錄應為模式'第_講%',按如下匹配
          ( substr(a.ME_TITLE,3,1)='0' and substr(a.me_title, 4,3)=substr(b.ME_TITLE, 3, 3) )
         )
              AND b.ME_TITLE <> a.ME_TITLE)       -- 要求兩字段值不同,避免同記錄的更新
WHERE other_courseware_name = '房屋建筑學'   -- 限定要更新記錄的分組
   AND me_title LIKE '第__講 精簡版'            -- 這是要更新的記錄的模式
   AND EXISTS     -- 該語句非常重要,可以避免將無對應源記錄的“精簡版”記錄的相應字段賦值為null。
          (SELECT 1      -- 僅當有匹配的源記錄時返回1
             FROM DB2ADMIN.metadata_xt AS c
            WHERE c.OTHER_COURSEWARE_NAME = '房屋建筑學'     -- 同樣進行限定,以下就與上面的子查詢完全相同了,目的也無二致
        AND c.ME_TITLE like '第%'
        AND
         ( left (c.ME_TITLE, 6) = left (a.ME_TITLE, 6)
         OR
          ( substr(a.ME_TITLE,3,1)='0' and substr(a.me_title, 4,3)=substr(c.ME_TITLE, 3, 3) )
         )
              AND c.ME_TITLE <> a.ME_TITLE);
      
-- 將所有其它字段更新完之后,再運行一遍,更新關鍵項:me_title。
UPDATE DB2ADMIN.metadata_xt AS a
   SET me_title =
          (SELECT distinct me_title
             FROM DB2ADMIN.metadata_xt AS b
            WHERE other_courseware_name = '房屋建筑學'
        AND b.ME_TITLE like '第%'
              AND
         ( left (b.ME_TITLE, 6) = left (a.ME_TITLE, 6)
         OR
          ( substr(a.ME_TITLE,3,1)='0' and substr(a.me_title, 4,3)=substr(b.ME_TITLE, 3, 3) )
         )
              AND b.ME_TITLE <> a.ME_TITLE) || ' (精簡版)' -- 關鍵項的修改:源me_title + ' (精簡版)'
WHERE other_courseware_name = '房屋建筑學'
   AND me_title LIKE '第__講 精簡版'
   AND EXISTS
          (SELECT 1
             FROM DB2ADMIN.metadata_xt AS c
            WHERE c.OTHER_COURSEWARE_NAME = '房屋建筑學'
        AND c.ME_TITLE like '第%'
        AND
         ( left (c.ME_TITLE, 6) = left (a.ME_TITLE, 6)
         OR
          ( substr(a.ME_TITLE,3,1)='0' and substr(a.me_title, 4,3)=substr(c.ME_TITLE, 3, 3) )
         )
              AND c.ME_TITLE <> a.ME_TITLE);
 

 

 

【編輯推薦】

DB2日期時間型數據類型介紹

分析DB2數據庫的優勢

DB2表空間管理

DB2數據庫啟動失敗的解決方案

創建DB2管理服務器的兩種情況

責任編輯:段燃 來源: 互聯網
相關推薦

2010-11-01 11:13:57

DB2表管理

2010-11-03 15:49:32

DB2刪除表

2010-09-30 10:53:39

DB2表管理

2010-09-06 15:13:05

DB2

2010-11-04 15:39:40

DB2 SQL語句

2010-11-04 11:17:42

DB2 Merge語句

2010-09-30 16:46:11

DB2操作語句

2010-11-01 12:11:43

DB2表空間

2010-11-01 16:07:22

DB2表空間

2010-11-04 13:14:16

DB2執行SQL語句

2010-11-04 11:39:47

2010-11-03 13:36:51

DB2時間函數

2010-11-01 16:38:13

DB2表空間

2010-11-02 14:45:12

DB2創建表空間

2010-11-01 16:44:43

DB2表空間

2010-11-04 11:52:04

DB2分類取前N個記錄

2010-11-02 15:36:18

DB2建表語句

2010-09-01 11:39:17

DB2聚集目標表

2010-11-02 14:37:58

DB2臨時表定義

2010-11-03 14:57:44

DB2備份所有表
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲一区二区高清 | 天天爽夜夜爽精品视频婷婷 | 久久ww| 久久中文字幕一区 | 亚洲欧美中文日韩在线v日本 | 亚洲三级在线观看 | 午夜免费视频 | 欧美国产视频 | 国产亚洲精品久久久久久豆腐 | 久久婷婷色 | 国产精品久久久久国产a级 欧美日本韩国一区二区 | 黄网站免费在线观看 | 粉嫩一区二区三区性色av | 91偷拍精品一区二区三区 | 神马九九| 99精品国产一区二区青青牛奶 | 麻豆一区二区三区 | 日韩成人精品 | 粉嫩av久久一区二区三区 | 午夜在线 | 91极品尤物在线播放国产 | 欧美视频| 无码国模国产在线观看 | 99成人免费视频 | 日本在线免费视频 | 日韩一| 亚洲欧美激情国产综合久久久 | 国产精品永久免费 | 国产精品亚洲精品日韩已方 | 久久免费大片 | 国内91在线 | 亚洲精品乱码久久久久久9色 | 丝袜美腿一区二区三区 | 精品久久久久久亚洲精品 | 精产嫩模国品一二三区 | 日韩欧美国产一区二区三区 | 8x国产精品视频一区二区 | 国产日韩在线观看一区 | 免费国产一区二区视频 | 久久丝袜| av国产精品毛片一区二区小说 |