zoukankan      html  css  js  c++  java
  • SQL 语句对每一行进行循环操作的几种方法

    SQL 语句对每一行进行循环操作的几种方法

    1、游标

    Declare @SN varchar(16)   --变量
    Declare iCursor Cursor For  --游标
         select Distinct SNum from Table1 where zd1 like '%test%'
    Open iCursor  --打开游标
    FETCH Next from iCursor Into @SN--用来对每一行来进行循环操作 
    WHILE @@FETCH_STATUS = 0
    Begin
        --此处对每一行要进行的操作的代码 
        Fetch Next from iCursor into @SN
    END
    CLOSE iCursor  --关闭游标
    DEALLOCATE iCursor
    

      

    2、IDENTITY

    select * from Table1 where zd1 like '%test%'
    select zd2,IDENTITY(INT,1,1) AS RNum
        into #TempSN    --插入临时表
        from Table1
        where zd1 like '%test%'
        ORDER BY zd2
    
    Declare @maxRow int --用来获得最大的 行数
    Declare @rowNo int 
    Select @maxRow=max(RNum) from #TempSN 
    set @rowNo=1 
    While @rowNo<=@maxRow --用来对每一个行来进行循环操作 
    Begin 
        --此处对每一行要进行的操作的代码 
        Set @rowNo=@rowNo+1 
    End 
    Drop Table #TempSN--清除临时表 

      

    3、RowNumber (SQL 2005 以上含版本支持)

    select * from Table1 where zd1 like '%test%'
    
    select zd2,ROW_NUMBER() OVER(ORDER BY zd2) AS RowNumber
        into #TempSN   --插入临时表
        from Table1
        where zd1 like '%test%'
    
    Declare @maxRow int --用来获得最大的rowNumber 
    Declare @rowNo int 
    Select @maxRow=max(rownumber) from #TempSN 
    set @rowNo=1 
    While @rowNo<=@maxRow --用来对每一个rowNumber来进行循环操作 
    Begin 
        --此处对每一行要进行的操作的代码 
        Set @rowNo=@rowNo+1 
    End 
    Drop Table #TempSN--清除临时表
    

      

      

    创建时间:2020.10.15  更新时间:

  • 相关阅读:
    算法复习:字符串
    【第五天打卡。
    【第四天打卡。
    【第三天打卡。
    第二天打卡。
    【唉
    配环境到崩溃系列
    所谓环境……
    【随便吐槽
    第四天。打卡。【偷懒了两天hhhh
  • 原文地址:https://www.cnblogs.com/guorongtao/p/13821513.html
Copyright © 2011-2022 走看看