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

  • Post author:
  • Post category:其他

一、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

转换后:




版权声明:本文为lwt976647637原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。