游标使用

此博客展示了一段SQL代码,主要实现把字符串转换成类数组的方法。通过定义变量、游标,查询特定条件下的辅助核算代码和科目代码,对查询结果进行处理,去掉字符串首尾逗号等操作,还涉及游标打开、读取记录等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

use yqcz;
--=======把字符串转换成类数组方法,
begin 
    declare @arr varchar(50),@i int ,@arrAt char(50),@subArr varchar(100),@subArrIndexValue varchar(100)
    -- declare @fzhsCursor cursor
    declare @indexCursor varchar(100)
    -- 被重新记录行数
    declare @rowCount int
    --定义查询到的科目代码和辅助代码
    declare @KMCode varchar(100)
    declare @FZHS VARCHAR(100)

    -- 测试字符串
    -- set @arr=',1,3,9,'
    -- 循环角标
    set  @i=1
    

    -- print @subArr
    -- PRINT LEN(@arr)
    -- 定义游标
    declare FZHSCursor cursor FOR
    --查询辅助核算代码
    select distinct fzhs,KMDM from GL_KMXX where kjnd='2019' and kmdm like '2307%'and gsdm='907008103002'; -- FOR UPDATE;
    --查询记录行数
    set @rowCount=(select count(fzhs ) from GL_KMXX where kjnd='2019' and kmdm like '2307%'and gsdm='907008103002');
    -- 打开游标
    open FZHSCursor;
    --检查是否有记录
    if (@rowCount)>0
        begin
             --控制循环从1开始
             if @i-2 < @rowCount
                begin                    
                    --读取记录,将字段值赋予@FZHS, @KMCode
                    fetch next from FZHSCursor into @FZHS, @KMCode
                    PRINT     @FZHS;        
                    PRINT     @KMCode;                
                    IF @FZHS <>'' AND @FZHS<>NULL
                            BEGIN
                                --OPP
                                --去掉首尾逗号
                                set @arr=@FZHS;
                                set @subArr= SubString(LTRIM( @arr), @i+1,LEN(@arr)-2)
                                print  @subArr;
                    
                                set @i=@i+2;
                            END    
                    ELSE PRINT '无辅助核算!';
                end 
            --    break;        
        end
        --关闭游标
        -- close fzhsCursor;
end


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值