• SqlServer中游标的使用


    使用了一个游标,并分解一个字符串:

    DECLARE @flag NVARCHAR(50),@i INT
    DECLARE @r1 NVARCHAR(50),@r2 NVARCHAR(50),@assay NVARCHAR(50)
    SET @flag='20100427181006'
    SET @assay=''

    --使用游标
    DECLARE getAssayValue CURSOR FOR
        SELECT ASSAY FROM dbo.KH_SampleBarcode1  WHERE POSITIONBC NOT IN (SELECT BCNAME FROM dbo.KH_BarCode) AND FLAG=@flag
    OPEN getAssayValue
    FETCH NEXT FROM getAssayValue INTO @r1
    WHILE @@FETCH_STATUS<>-1
    BEGIN
        IF @assay=''
            SET @assay=@r1
        ELSE
        BEGIN
            --以下对字符串做的分解,相当于一个Split方法
            SET @i=CHARINDEX(';',@r1)
            IF @i>0
            BEGIN
                WHILE @i>0
                BEGIN
                    SET @r2=LEFT(@r1, @i-1)
                    IF CHARINDEX(@r2, @assay)<=0
                        SET @assay=@assay+';'+@r2
                    SET @r1=SUBSTRING(@r1, @i+1, LEN(@r1)-@i)
                    SET @i=CHARINDEX(';',@r1)
                END
            END
            ELSE
                IF CHARINDEX(@r1, @assay)<=0
                    SET @assay=@assay+';'+@r1
        END
        FETCH NEXT FROM getAssayValue INTO @r1
    END

    CLOSE getAssayValue
    DEALLOCATE getAssayValue
    PRINT @assay

  • 相关阅读:
    JAVA类加载机制
    redis 持久化的两种方式
    java动态代理(JDK和cglib)
    数据库事务的四大特性以及事务的隔离级别
    数据库范式
    Cookie/Session机制详解
    java多线程并发系列之闭锁(Latch)和栅栏(CyclicBarrier)
    BIO与NIO、AIO的区别
    高性能Server---Reactor模型
    Netty---相关
  • 原文地址:https://www.cnblogs.com/wjhx/p/1724009.html
Copyright © 2020-2023  润新知