⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 编程技巧 sql 使用子查询选择最末几条数据.txt

📁 C&C++论坛精华
💻 TXT
字号:
作者:rick1126
email: rickzhang@sina.com.cn
日期:2001-4-15 9:50:52
BOTTOM ROWS USING SUBSELECT 
你可以通过使用(>|<)从一个表格中获得最后三条记录:
要获得前三条记录: 
    Select username From dba_users outcust
    Where 3 > (Select count(*)
    From dba_users incust
    Where outcust.username > incust.username)
    order by username; 

要获得后三条记录:
    Select username From dba_users outcust
    Where 3 > (Select count(*)
    From dba_users incust
    Where outcust.username < incust.username)
    order by username; 

 
    USERNAME 
    --------- 
    SYS 
    SYSTEM 
    TESTTTS 

通过下面的结果分析可以更容易理解: 
    SQL>
        Select outcust.username OUTCUST_USERNAME, incust.username INCUST_USERNAME
        From dba_users incust, dba_users outcust
        Where outcust.username < incust.username
        order by outcust.username, incust.username
        /


    OUTCUST_USERNAME   INCUST_USERNAME 
    ----------------   --------------- 
    DBSNMP             DMDEV 
    DBSNMP             DMTEST 
    DBSNMP             OUTLN 
    DBSNMP             SYS 
    DBSNMP             SYSTEM 
    DBSNMP             TESTTTS 
    DMDEV              DMTEST 
    DMDEV              OUTLN 
    DMDEV              SYS 
    DMDEV              SYSTEM 
    DMDEV              TESTTTS 
    DMTEST             OUTLN 
    DMTEST             SYS 
    DMTEST             SYSTEM 
    DMTEST             TESTTTS 
    OUTLN              SYS 
    OUTLN              SYSTEM 
    OUTLN              TESTTTS 
    SYS                SYSTEM 
    SYS                TESTTTS 
    SYSTEM             TESTTTS 

21 rows selected. 
注意: username 中具有最高比较值得记录 (TESTTTS) 没有显示在左面的列中, 这显示了两件事:
1. 查询允许较慢是因为产生了一个笛卡儿运算
2. 该查询通过比较数字 -- 针对第三种情况 -- 来计算 where 子句需要的记录数. 在第三种情况下, 3 大于 outcust_usernames 小于 incust_usernames. 这仅仅保留了三个值: SYS, SYSTEM 而且最低值没有作为一个 outcust_username 列显示, TESTTTS. 

在使用这项技术的时候, 允许一个性能测试确保查询可以在一个可以接收的时间范围内运行.
-----------
Tim Quinlan 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -