隨筆-204  評論-90  文章-8  trackbacks-0

          delete ? from ?t_number;

          以下表為例:

          create ? table ?t_number(
          ??ID???????
          NUMBER ? not ? null ,
          ??USERNAME?
          VARCHAR2 ( 30 ),
          ??MOBILE???
          VARCHAR2 ( 30 ),
          ??OPRCODE??
          VARCHAR2 ( 2 ),
          ??INSDATE??DATE
          )

          一、記錄中部分字段重復:
          delete?from?t_number?a?
          where?a.rowid?!=?(select?max(b.rowid)?
          ??????????????????
          from?t_number?b?
          ??????????????????
          where?a.mobile?=?b.mobile);

          在oracle中,有個隱藏了自動rowid,里面給每條記錄一個唯一的rowid,我們如果想保留最新最舊的一條記錄, 我們就可以利用這個字段,保留重復數據中rowid最大或最小的一條記錄就可以了

          二、記錄中各字段內容完全相同的情況
          先創建臨時表:

          CREATE?TABLE?t_number_tmp?AS?(select?distinct?*?from?t_number);

          清除原表
          delete?from?t_number;

          將臨時表的數據導入原表
          insert?into?t_number?(select?*?from?t_number_tmp);

          刪除臨時表
          drop?tablet_number_tmp;


          ?

          posted on 2006-12-04 16:01 一凡 閱讀(337) 評論(0)  編輯  收藏 所屬分類: DATABASE
          主站蜘蛛池模板: 玉树县| 旬邑县| 十堰市| 长海县| 博罗县| 思茅市| 定陶县| 任丘市| 平果县| 肇东市| 南投县| 辽中县| 墨竹工卡县| 珲春市| 汝城县| 龙门县| 泸溪县| 东明县| 闽侯县| 瑞安市| 江山市| 玉田县| 亳州市| 巴彦淖尔市| 沐川县| 内黄县| 营口市| 云南省| 枣阳市| 静乐县| 大荔县| 南昌县| 辛集市| 昭平县| 曲周县| 蚌埠市| 肥城市| 班玛县| 阳泉市| 林州市| 揭东县|