隨筆-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
          主站蜘蛛池模板: 洪江市| 吴江市| 夏津县| 修水县| 西盟| 正蓝旗| 封丘县| 钦州市| 那曲县| 玉门市| 刚察县| 阿巴嘎旗| 桓台县| 吉安市| 泰顺县| 贡山| 普格县| 渝中区| 凭祥市| 聊城市| 正定县| 隆德县| 佛山市| 根河市| 宜君县| 象山县| 灌阳县| 邢台县| 武城县| 陈巴尔虎旗| 虹口区| 旺苍县| 庆阳市| 曲周县| 耒阳市| 房山区| 卢龙县| 策勒县| 平谷区| 台湾省| 宜兰县|