易截截图软件、单文件、免安装、纯绿色、仅160KB

使用SQL语句找到表中某列的第几名

SQL> select * from t1;
        ID        AGE
---------- ----------
         1         20
         2         19
         3         19
         4         21
         5         22
         6         27
6 rows selected.
现在要求找出表中第三年轻的学生
方法1
第三年轻,也就意味着只有两个人比他小
SQL> select t11.*
  2  from t1 t11
  3  where 2=(select count(*) from t1 t22 where t11.age>t22.age);
        ID        AGE
---------- ----------
         1         20
方法2
使用窗口函数
SQL> select id,age
  2  from
  3  (
  4  select id,age,
  5  dense_rank() over(order by age) dr
  6  from t1
  7  )
  8  where dr=3;
        ID        AGE
---------- ----------
         4         21
奇怪了,这里结果为什么不一样呢?回头看一下表中的数据,有两条age=19的数据,这就是原因。下面换rank
SQL> select id,age
  2  from
  3  (
  4  select id,age,
  5  rank() over(order by age) dr
  6  from t1
  7  )
  8  where dr=3;
      


相关文档:

SQL Server Express的使用

      今天终于知道SQL 2005 怎么用了,感觉以前太懒了,明明想知道的东西可是因为已经有sql2000就懒得查。知识这东西是日积月累的,真正到用的时候才去补就已经晚了。
      以前安装VS2005的时候就看到安装完了以后会有一个SQL2005,可是自己不会用,那个时候只 ......

VB+SQL编写数据库管理系统

     参照案例教程建立的数据库管理系统在甚多方面都存在问题。可能是新手,不管是对于大一就学过的VB编程还是这个学期刚接触的SQL,很多小问题常常出现在调试过程中。想请熟悉使用这两个平台的高手帮忙指点一下。
     1.如何解决DataGrid中多个column和SQL中多个表的绑定?目的 ......

行列转置的SQL语句

行列转置的SQL语句
另一种行列转置 -- 动态 sql 交叉表 =========================================================== 作者: wxy0327(http://wxy0327.itpub.net)
发表于: 2006.05.10 09:11
分类: Oracle
出处: http://wxy0327.itpub.net/post/16888/88075
-------------------------- ......

多条件查询存储过程 SQL Server


多条件查询存储过程
 多条件查询存储过程 例一
create proc pr_select_Natural
(
 @CDATE  datetime,
 @FAC_NAME varchar(50),
 @BATTERY_TYPE varchar(20),
 @MAKE_MODE varchar(20),
 @PRODUCE_MODE varchar(20),
 @YEAR  char(4),
 @MONTH  char(2 ......

sql语句中left join、inner join中的on与where的区别

table a(id, type):
id     type 
----------------------------------
1      1         
2      1          
3   &n ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号