数据库技术之TRY CATCH 、行转列实例

一、TRY CATCH

目的:用来捕获异常和处理异常语句。

简单实例:

创建一个新的表t1

CREATE TABLEt1

(

c1intPRIMARYKEY,

C2varchar(50)

)

INSERT INTO t1 VALUES(1,'good');  --插入测试数据

BEGIN TRY

 INSERT INTO t1 VALUES(1,'same')

END TRY

BEGIN CATCH--捕捉到异常后进行处理

 SELECT ERROR_LINE(),ERROR_SEVERITY(),ERROR_MESSAGE()

END CATCH

相关函数说明:

ERROR_NUMBER()  

返回错误号。

ERROR_SEVERITY() 

返回严重性。

ERROR_STATE() 

返回错误状态号。

ERROR_PROCEDURE()  

返回出现错误的存储过程或触发器的名称。

ERROR_LINE() 

返回导致错误的例程中的行号。

ERROR_MESSAGE() 

返回错误消息的完整文本。该文本可包括任何可替换参数所提供的值,如长度、对象名或时间。

如果是在 CATCH 块的作用域之外调用这些函数,则这些函数返回空值。可以从 CATCH 块作用域内的任何位置使用这些函数检索错误消息




二、简单的行转列实例(PIVOT使用)

创建并初始化产品销售表

CREATE TABLEproductSale

(

 IDint,

  Namevarchar(20),

  Quarterint,

  Saleint

)

insertintoproductSalevalues(1,'a',1,1000)

insertintoproductSalevalues(1,'a',2,2000)

insertintoproductSalevalues(1,'a',3,4000)

insertintoproductSalevalues(1,'a',4,5000)

insertintoproductSalevalues(1,'b',1,3000)

insertintoproductSalevalues(1,'b',2,3500)

insertintoproductSalevalues(1,'b',3,4200)

insert into productSale values(1,'b',4,5500)


使用PIVOT行转列

SELECT ID,name,

[1]as"一季度",

[2]as"二季度",

[3]as"三季度",

[4]as"四季度"

FROM

productSale

PIVOT

(

sum(sale)

forQuarterin

([1],[2],[3],[4])

)

as pvt

转换后:




评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值