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

sql over的作用及用法


RANK ( ) OVER ( [query_partition_clause] order_by_clause )
DENSE_RANK ( ) OVER ( [query_partition_clause] order_by_clause )
可实现按指定的字段分组排序,对于相同分组字段的结果集进行排序,
其中PARTITION BY 为分组字段,ORDER BY 指定排序字段
over不能单独使用,要和分析函数:rank(),dense_rank(),row_number()等一起使用。
其参数:over(partition by columnname1 order by columnname2)
含义:按columname1指定的字段进行分组排序,或者说按字段columnname1的值进行分组排序。
例如:employees表中,有两个部门的记录:department_id =10和20
select department_id,rank() over(partition by department_id order by salary) from employees就是指在部门10中进行薪水的排名,在部门20中进行薪水排名。如果是partition by org_id,则是在整个公司内进行排名。
以下是个人见解:
sql中的over函数和row_numbert()函数配合使用,可生成行号。可对某一列的值进行排序,对于相同值的数据行进行分组排序。如下表:
执行语句:select row_number() over(order by AID DESC) as rowid,* from bb后的结果如下:
rowid标识行号有了,同时AID也按降序排列。AID有重复的记录,如果要删除rowid为2所对应的记录则可以:
with [a] as
(select row_number() over(order by AID desc) as rowid,* from bb)
delete from [a] where rowid=2
如果查看rowid 为5所对应的记录的信息,可以:
with [b] as
(select row_number() over(order by AID desc) as rowid,* from bb)
select * from [b] where rowid=5
注意:
over里的order只能查查询里的原始数据进行操作,不会对计算出的新值或新字段起作用。
msdn中的说法如下:
<ORDER BY 子句> 只能引用通过 from 子句可用的列。<ORDER BY 子句>不能与聚合窗口函数一起使用。


相关文档:

Sql Server 日期格式化

Sql Server 中一个非常强大的日期格式化函数
Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GE ......

一个SQL无限级树型存储过程实现树型结构数据排序

我们在平常的系统开发中常常会遇到像无限级分类这样的树型结构数据,现提供一个可用的数据库存储过程,可以完成树型结构数据的排序。
环境:windows7+Sql Server 2008
说明:下面代码已经转换成Sql server2000的脚本,处理效果如下,看sortname字段结果,代码经过测试。
创建树型表
CREATE TABLE [dbo].[categories](
......

oracle sql面试题2

一.简单SQL查询:
1):统计每个部门员工的数目
select dept,count(*) from employee group by dept;
2):统计每个部门员工的数目大于一个的记录
select dept,count(*) from employee group by dept having count(*)>1;
3):统计工资超过1200的员工所在部门的名称
select e.first_name,salary,d.name
from s_emp ......

SQL函数大全2

--
聚合函数
use
pubs
go
select

avg
(
distinct
price)  
--
算平均数
from
titles
where
type
=
'
business
'
go

use
pubs
go
select

max
(ytd_sales)  
--
最大数
from
titles
go

use
pubs
go
select

min
(ytd_sales)
--
最小数
fr ......

hibernate执行原生Sql语句的方法(转)

http://www.thecloud.cn/study/program/java/597.html
hibernate3的HQL 是面向对象的语法,已经支持 update ,delete from语句,但
目前还不支持insert into语句.
做项目有时候的确需要写原生的sql来方便web开发.
下面是我自己鼓捣出来的方法,希望对我和朋友有所帮助.
在Dao里写一个方法,让我们在action里调用它...
&nbs ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号