易截截图软件、单文件、免安装、纯绿色、仅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中的日期与时间函数

1.     当前系统日期、时间
       select getdate()  
2. dateadd     在向指定日期加上一段时间的基础上,返回新的 datetime 值
      例如:向日期加上2天
      select dat ......

SQL_查询当天、近几天、本周、本月的SQL语句

经常会有时候要用到查询当天,近几天,本周,本月的相关数据,所以记录一下这些比较特殊的SQL语句~~
--当天
(usrRegTime >=CONVERT(varchar(10),getDate(),120)+' 00:00:00' and usrRegTime <=CONVERT(varchar (10),getDate(),120)+' 23:59:59')
--近三天
DateDiff(day,usrRegTime,getdate()) <=3
--本周 ......

SQL语句复制表的方法


SQL语句复制表的方法
(2009-08-29 13:41:54)
标签:
sql
分类:计算机知识
如果目的表已经存在:
insert into DATAHR.DBO.GBITEM
select * from DEMO.DBO.GBITEM
如果目的表不存在:
select * into DATAHR.DBO.GBITEM
from DEMO.DBO.GBITEM
跨库导入
select * into [zk_news].[dbo].[News1] from [zk_media].[ ......

sql2005中一个xml聚合的例子

sql2005中一个xml聚合的例子 收藏
该问题来自论坛提问,演示SQL代码如下
--建立测试环境
set nocount on
create table test(ID varchar(20),NAME varchar(20))
insert into test select '1','aaa'
insert into test select '1','bbb'
insert into test select '1','ccc'
insert into test select '2','ddd'
inser ......

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号