栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在SQL中使用rownum删除重复记录

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在SQL中使用rownum删除重复记录

使用

rowid

DELETe FROM table_name a WHERe EXISTS( SELECt 1      FROM table_name b     WHERe a.id = b.id       AND a.name = b.name       AND a.rowid > b.rowid )

当然,您也可以这样做

a.rowid < b.rowid
。该
rowid
所以你是否删除具有较大的行或较小的地址不要紧只是该行的物理地址。

但是,您的预期结果没有任何意义。

Expected Result :        ROWNUM         ID NAME    ---------- ---------- ----------  4          1 leo_1  5          2 leo_2  6          3 leo_3

rownum
结果集的总是在查询时分配。这意味着
rownum
在不同的查询中(或同一查询多次运行时)特定的行可能会以不同的值出现。
rownum
始终是顺序的,因此
rownum
在同一结果集中没有
rownum
1、2和3的值的情况下,结果集中永远不会有a的4
。无论您删除哪个重复行,您的结果都将是

预期结果 :

    ROWNUM         ID NAME---------- ---------- ----------         1          1 leo_1         2          2 leo_2         3          3 leo_3

但是这些

rownum
值是任意的。Oracle返回同样有效

预期结果 :

    ROWNUM         ID NAME---------- ---------- ----------         1          2 leo_2         2          3 leo_3         3          1 leo_1


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/398516.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号