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  更新时间:

  • 相关阅读:
    50.Ext_数字输入框_Ext.form.NumberField
    49.Ext.form.TextField()基本用法
    48.EXt.Data.JsonReader()
    47. Ext.form.Field.prototype.msgTarget
    46. Ext中namespace的作用(转)
    45. ExtJS ComboBox 下拉列表详细用法
    44. Ext信息提示对话框
    43. ExtJs控件属性配置详细
    42.extjs Combobox动态加载数据问题,mode:local 还是remote
    堆叠顺序
  • 原文地址:https://www.cnblogs.com/guorongtao/p/13821513.html
Copyright © 2011-2022 走看看