go2newlife的专栏
项目资源共享群53604708欢迎大家加入!本群人满,请加40534490或者53676277群
登录
注册
全站
当前博客
空间
博客
好友
相册
留言
用户操作
[即时聊天]
[发私信]
[加为好友]
go2newlife
go2newlife的公告
最近评论
sap99:
www.sap99.com/,SAP99资料多多
SAP免费资料下载
http://www.sap99.com
有很多的学习资料,推荐一下,
aaronyip:
老大,假如实体包含子实体,报表该怎样做呢?例如
public class Customer
{
public int ID;
public string Name;
public string Address;
aaronyip:
老大,假如实体包含子实体,报表该怎样做呢?例如
public class Customer
{
public int ID;
public string Name;
public string Address;
zero8500:
eagle998@126.com
谢谢!
zhylninc:
这些事件不知道怎么用......
文章分类
.net 技术 关键技术
(RSS)
csla架构的学习
(RSS)
ERP基础
(RSS)
SOA相关
(RSS)
SqlServer2005
(RSS)
报表打印
(RSS)
编程思想
(RSS)
控件专题
(RSS)
面向对象的分析与设计
(RSS)
设计模式
(RSS)
生活与休闲
(RSS)
收藏
相册
存档
2008年04月(2)
2008年03月(3)
2008年02月(2)
2008年01月(25)
2007年12月(31)
2007年11月(96)
软件项目交易
订阅我的博客
SQL server 2005中新增的排序函数及操作
收藏
新一篇: 将表数据生成SQL脚本的存储过程
|
旧一篇: 将表数据生成SQL脚本的存储过程
举个例子
SELECT
YEAR
(BirthDate),
ROW_NUMBER()
OVER
(
ORDER
BY
YEAR
(BirthDate))
AS
'
RowNumber
'
,
/**/
/*
按年产生一个唯一的序号
*/
ROW_NUMBER()
OVER
(PARTITION
BY
YEAR
(BirthDate)
ORDER
BY
BirthDate)
AS
RowNumberPartition,
/**/
/*
每年产生一个唯一的序列
*/
RANK()
OVER
(
ORDER
BY
YEAR
(BirthDate))
AS
'
Rank
'
,
/**/
/*
产生一个非紧密排名
*/
DENSE_RANK()
OVER
(
ORDER
BY
YEAR
(BirthDate))
AS
'
Dense_Rank
'
,
/**/
/*
产生一个紧密排名
*/
NTILE(
10
)
OVER
(
ORDER
BY
BirthDate
DESC
)
AS
'
ntile
'
/**/
/*
将结果分成10个组
*/
FROM
HumanResources.Employee
ORDER
BY
BirthDate
看看新的排序函数如何解决SQL server 2000中不方便解决的问题
--
按BirthDate排序,取第10条到20条的数据 (这一定是最激动人心的新特性,哈哈)
SELECT
BirthDate
FROM
(
SELECT
ROW_NUMBER()
OVER
(
ORDER
BY
BirthDate)
AS
a,BirthDate
FROM
HumanResources.Employee
)
AS
a
WHERE
a
BETWEEN
10
AND
20
--
将数据分成十份,取第三份
SELECT
BirthDate
FROM
(
SELECT
NTILE(
10
)
OVER
(
ORDER
BY
BirthDate
DESC
)
AS
a,BirthDate
FROM
HumanResources.Employee
)
AS
a
WHERE
a
=
3再来看看如何用新的排序函数解决以前在SQL server 2000中的问题
--
出生的员工最多的一年出生多少员工(有点)
/**/
/*
SQL server 2000
*/
SELECT
MAX
(a)
FROM
(
SELECT
COUNT
(EmployeeID)
AS
a
FROM
HumanResources.Employee
GROUP
BY
YEAR
(BirthDate)
)
AS
a
/**/
/*
SQL server 2005
*/
SELECT
MAX
(a)
FROM
(
SELECT
ROW_NUMBER()
OVER
(PARTITION
BY
YEAR
(BirthDate)
ORDER
BY
BirthDate)
AS
a
FROM
HumanResources.Employee
)
AS
a
--
出生日期涵盖了多少年
/**/
/*
SQL server 2000
*/
SELECT
COUNT
(
DISTINCT
YEAR
(BirthDate))
FROM
HumanResources.Employee
/**/
/*
SQL server 2005
*/
SELECT
MAX
(a)
FROM
(
SELECT
DENSE_RANK()
OVER
(
ORDER
BY
YEAR
(BirthDate))
AS
a
FROM
HumanResources.Employee
)
AS
a
--
显示前10%的数据
/**/
/*
SQL server 2000
*/
SELECT
TOP
10
Percent
BirthDate
FROM
HumanResources.Employee
/**/
/*
SQL server 2005
*/
SELECT
BirthDate
FROM
(
SELECT
NTILE(
10
)
OVER
(
ORDER
BY
BirthDate
DESC
)
AS
a,BirthDate
FROM
HumanResources.Employee
)
AS
a
WHERE
a
=
1
发表于 @
2007年11月30日 19:41:00
|
评论(
loading...
)
|
编辑
新一篇: 将表数据生成SQL脚本的存储过程
|
旧一篇: 将表数据生成SQL脚本的存储过程
评论:没有评论。
发表评论
姓 名:
主 页:
校验码:
看不清,换一张
当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击
登录