使用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;
 
相关文档:
create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列
......
今天终于知道SQL 2005 怎么用了,感觉以前太懒了,明明想知道的东西可是因为已经有sql2000就懒得查。知识这东西是日积月累的,真正到用的时候才去补就已经晚了。
以前安装VS2005的时候就看到安装完了以后会有一个SQL2005,可是自己不会用,那个时候只 ......
参照案例教程建立的数据库管理系统在甚多方面都存在问题。可能是新手,不管是对于大一就学过的VB编程还是这个学期刚接触的SQL,很多小问题常常出现在调试过程中。想请熟悉使用这两个平台的高手帮忙指点一下。
1.如何解决DataGrid中多个column和SQL中多个表的绑定?目的 ......
清空日志:
dump transaction 库名 with no_log
截断日志:
backup log 库名 with no_log
压缩数据库:
dbcc shrinkdatabase (库名, 目标比率)
压缩数据库文件:
dbcc shrinkfile (文件名或ID, 目标大小)
文件名或ID可以通过系统表sysfiles查找,如果不指定目标大小SQL Server将最大限度的压缩数据库文件。
查看压 ......
行列转置的SQL语句
另一种行列转置 -- 动态 sql 交叉表
===========================================================
作者: wxy0327(http://wxy0327.itpub.net)
发表于: 2006.05.10 09:11
分类:
Oracle
出处: http://wxy0327.itpub.net/post/16888/88075
-------------------------- ......