0
点赞
收藏
分享

微信扫一扫

oracle删除表中的数据

那小那小 2022-03-14 阅读 170

​​MOVE

​丢弃不满足条件的数据​

12c+版本支持,​​https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/ALTER-TABLE.html#GUID-552E7373-BF93-477D-9DA3-B2C9386F2877​​

FILM_ID

TITLE

UK_RELEASE_DATE

LENGTH_IN_MINUTES

BBFC_RATING

1

Frozen

06-DEC-13

102

PG

2

Frozen

06-DEC-13

102

PG

3

Frozen

06-DEC-13

100

U

4

Aladdin

18-NOV-93

90

U

5

Aladdin

18-NOV-93

90

U

6

The Little Mermaid

12-OCT-90

83

U

alter table films move including rows where film_id > 4;
将符合条件的数据留下,其他数据丢弃。

FILM_ID

TITLE

UK_RELEASE_DATE

LENGTH_IN_MINUTES

BBFC_RATING

5

Aladdin

18-NOV-93

90

U

6

The Little Mermaid

12-OCT-90

83

U

按主键

delete from films
where film_id not in
( select max(film_id) over ( partition by TITLE )
from films
);

ROWID

delete from films
where rowid in
( select rowid
from
( select rowid,
row_number() over ( partition by TITLE order by FILM_ID desc) as r
from films
)
where r > 1
);

delete from films
where rowid not in
(select max(rowid) from films t group by TITLE, UK_RELEASE_DATE);

delete from films
where rowid not in
(select min(rowid) from films t group by TITLE, UK_RELEASE_DATE);

PARTITION

ALTER TABLE table_name DROP PARTITION partition_name;


举报

相关推荐

0 条评论