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
  • 相关阅读:
    呕心沥血写的python猜数字
    判断Python输入是否为数字
    python深拷贝和浅拷贝
    python 字符串
    python字符串操作
    如何在CentOS 7.1中安装VMware Workstation
    Ubuntu强制卸载VMware-player
    linux下安装VMware出错:Gtk-Message: Failed to load module "canberra-gtk-module"解决方法
    day63 Pyhton 框架Django 06
    day62 Pyhton 框架Django 05
  • 原文地址:https://www.cnblogs.com/ToughGuy/p/3727008.html
Copyright © 2011-2022 走看看