zoukankan      html  css  js  c++  java
  • SQL While And Sql Array

    SQL While循环:

    DECLARE @whileStr varchar(200),@itemArray VARCHAR(200),@mark CHAR(1)
    SET @whileStr='1,12,1003,100|2,13,1004,101|3,14,1005,102'
    --SET @whileStr='4,11,1000,100|'
    SET @mark=','
    WHILE(1=1)
    BEGIN
        --获取当前需要项
        exec proc_getArrayItem '|',@whileStr OUTPUT,@itemArray OUTPUT
    
        --业务逻辑 proc_getArrayItem接收的参数是字符串类型,但是我们可以把变量定义成需要的类型,它会自动转换
        declare @ItemID INT,@D3_BuyCount INT,@D3_TotalStock INT,@D3_DailyStock INT
        exec proc_getArrayItem @mark,@itemArray OUTPUT,@ItemID OUTPUT/*获取第1项*/           
        exec proc_getArrayItem @mark,@itemArray OUTPUT,@D3_BuyCount OUTPUT/*获取第2项*/          
        exec proc_getArrayItem @mark,@itemArray OUTPUT,@D3_TotalStock OUTPUT/*获取第3项*/           
        exec proc_getArrayItem @mark,@itemArray OUTPUT,@D3_DailyStock OUTPUT/*获取第4项*/          
        SELECT @ItemID,@D3_BuyCount,@D3_TotalStock,@D3_DailyStock
        
        --如果已完则退出循环
        IF(LEN(@whileStr)=0)BREAK    
    END

    获取数组元素:

    if exists(select * from sysobjects where [name]='proc_getArrayItem')
        drop proc proc_getArrayItem
    GO
    /* 
    *获取数组项,通过输出参数返回。同时将字符串数组的已获取项删除,并以输出参数将新数组返回。 
    @arrayStr是个以@mark符号分隔的字符串数组。 
    *@arrayItem接收的参数是字符串类型,但是我们可以把客户端变量定义成需要的类型,它会自动转换。 
    *
    */
    CREATE PROC proc_getArrayItem
    (
        @mark    VARCHAR(10)=',',
        @arrayStr VARCHAR(1000)='' OUTPUT,
        @arrayItem VARCHAR(100)='' OUTPUT
    )
    AS
        DECLARE @tokenIndex INT
        SET @tokenIndex=CHARINDEX(@mark,@arrayStr)  
        
        IF(@tokenIndex=0)
        BEGIN
            SET @arrayItem=SUBSTRING(@arrayStr,1,LEN(@arrayStr))        
            SET @arrayStr=''
        END
        ELSE
        BEGIN
            SET @arrayItem=SUBSTRING(@arrayStr,1,@tokenIndex-1)
            SET @arrayStr=SUBSTRING(@arrayStr,@tokenIndex+1,LEN(@arrayStr))
        END
    GO
  • 相关阅读:
    php ajax分页的例子,在使用中
    PHP远程文件管理,可以给表格排序,遍历目录,时间排序
    背景变暗的div可拖动提示窗口,兼容IE、Firefox、Opera
    CSS简洁的左侧菜单(侧拉菜单,向右显示)
    无间断循环滚动(兼容IE、FF)
    poj 1007 求逆序数
    poj 1775 简单搜索
    面向对象之继承和组合浅谈
    在flex中导入fl包
    C99中包括的特性
  • 原文地址:https://www.cnblogs.com/ToughGuy/p/3727008.html
Copyright © 2011-2022 走看看