• SQL Notes


    存储过程 + 事务

      ALTER Procedure  dbo.proc_Pets_MatingRequest_Update
        (@MRId int,@RequestStatus int ,@PetStatus int)
        AS
           Begin
               SET NOCOUNT ON;
               SET XACT_ABORT ON;
               BEGIN TRY
               BEGIN TRAN
               DECLARE @count int =0
               UPDATE dbo.Pets SET PetStatus = @PetStatus
                    WHERE PetId= (SELECT PetId FROM dbo.MatingRequests WHERE MRId = @MRId)
               SET @count += @@ROWCOUNT
               UPDATE dbo.MatingRequests SET RequestStatus = @RequestStatus
                    WHERE MRId = @mrid
               SET @count += @@ROWCOUNT
               IF(@count = 2) COMMIT TRAN
               ELSE ROLLBACK TRAN
               SELECT @count
               END TRY
               BEGIN CATCH
               IF XACT_STATE()=-1 ROLLBACK TRAN
               END CATCH
               SET NOCOUNT OFF
           End

      

    行列转换

    参考:http://www.cnblogs.com/zhangzt/archive/2010/07/29/1787825.html

    PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现

    PIVOT的一般语法是:PIVOT( 聚合函数(列) FOR 列 IN (…) )AS P

    完整语法:

    table_source

    PIVOT( 聚合函数(value_column) FOR pivot_column IN(<column_list>) )

    UNPIVOT用于将列明转为列值(即列转行),在SQL Server 2000可以用UNION来实现

    完整语法:

    table_source

    UNPIVOT( value_column FOR pivot_column IN(<column_list>) )

    各列类型需要一致。

    注意:PIVOT、UNPIVOT是SQL Server 2005的语法,使用需修改数据库兼容级别,在数据库属性->选项->兼容级别改为90。

    PS:pivot-以…为中心旋转

    实例:

    SELECT PetId,Field,Url
    FROM (
        SELECT PetId,[ImageUrl1],[ThumbnailUrl40],[ThumbnailUrl60],[ThumbnailUrl100],[ThumbnailUrl160],[ThumbnailUrl180],[ThumbnailUrl220],[ThumbnailUrl310],[ThumbnailUrl410],[ImageUrl2],[ImageUrl3],[ImageUrl4],[ImageUrl5],[HeadImage]
        FROM Pets WHERE PetId = 5011
        ) T UNPIVOT(
        Url FOR Field IN ([ImageUrl1],[ThumbnailUrl40],[ThumbnailUrl60],[ThumbnailUrl100],[ThumbnailUrl160],[ThumbnailUrl180],[ThumbnailUrl220],[ThumbnailUrl310],[ThumbnailUrl410],[ImageUrl2],[ImageUrl3],[ImageUrl4],[ImageUrl5],[HeadImage])
        ) P

      

     

     

     

     

  • 相关阅读:
    Centos 7 安装Redis5 详细步骤 备忘录笔记
    【瞎口胡】后缀自动机(SAM)
    IDEA 热部署Devtools
    CentOS7 安装 ZooKeeper
    ClangFormat
    const * 和 * const
    mybatisplus
    Android动态权限请求
    Android工程获取包内的MD5值
    页面多次跳转加载时,window.onscroll方法失效问题解决
  • 原文地址:https://www.cnblogs.com/huhunet/p/7402705.html
Copyright © 2020-2023  润新知