个人整理摘录的SQL2005新增几种常用的T-SQL语句

本文介绍 SQL Server 2005 中新增的 T-SQL 特性,包括分页查询、排位函数、动态 TOP 参数支持、APPLY 运算符、公共表表达式 (CTE)、错误处理机制 (TRY/CATCH) 以及 PIVOT 和 UNPIVOT 运算符等,这些新特性显著提高了 SQL 查询的灵活性和效率。
 个人整理摘录的SQL2005新增几种常用的T-SQL语句
--SQL2005 分页
select * from(select id, title, ROW_NUMBER() OVER(order by [id] descas row from fabu) a 
where row between 1000 and 1020 
--SQL2005 排位
select * from(select id, title, RANK() OVER(order by [id] descas rank from fabu) a 
where rank between 1000 and 1020 

--top.可以动态传入参数,省却了动态SQL的拼写。 
DECLARE @top int;
set @top=10;
select top(@top) id from fabu
/*Apply.对递归类的树遍历很有帮助 CROSS APPLY 仅返回外部表中通过表值函数生成结果集的
行。OUTER APPLY 既返回生成结果集的行,也返回不生成结果集的行,其中表值函数生成的列
中的值为 NULL.
*/


--CTE.创建临时表,使阅读清晰,非常有时代感
WITH Sales_CTE (id, date, title)
AS
(
     
SELECT top 10 id,addtime,title FROM fabu order by id asc
)
select top 5 id,title from Sales_CTE ORDER BY [id] desc;
--try/catch 代替了原来VB式的错误判断。比Oracle高级不少
BEGIN TRY
     
-- Generate divide-by-zero error.
     SELECT 1/0;
END TRY
BEGIN CATCH
     
SELECT ERROR_NUMBER() AS ErrorNumber;
END CATCH;
GO
--pivot/unpivot使用 PIVOT 和 UNPIVOT 关系运算符对表值表达式进行操作以获得另一个表
exec sp_dbcmptlevel 'gwtest','90'
SELECT [id],title,addtime
FROM 
(
SELECT top 10 [id],title,addtime,userid from fabu order by id) p
PIVOT
(
COUNT (userid)
FOR userid IN
[4][222][218] )
AS pvt
ORDER BY [id] 
 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值