• SQL 存储过程 传入数组参数


    今天在做统计数据的时候,传入数组导致数据不显示。解决方式和大家分享一下:

    --参数@CompanyName='北京,天津,上海'

        DECLARE @PointerPrev int
        DECLARE @PointerCurr int
        DECLARE @TName nvarchar(100)
        Set @PointerPrev=1
        while (@PointerPrev < LEN(@CompanyName))
        Begin
            Set @PointerCurr=CharIndex(',',@CompanyName,@PointerPrev)
            if(@PointerCurr>0)
            Begin
                set @TName=SUBSTRING(@CompanyName,@PointerPrev,@PointerCurr-@PointerPrev)

              --我们可以在这里直接进行删除或修改

               DELETE FROM TestA    WHERE Name=@TName

             --如果作为查询条件,我需要创建一个临时表,将数据插入进去
             --insert into #CnameTable (Name) VALUES (@TName)
             --insert into #CnameTable (Name)  SELECT Name FROM TestName where Name like '%'+@TName+'%'
             --这里的TestName 表中数剧量大时会降低查询速度,建议大家用其他方式处理,例如指针、重新拼接字符串等

                SET @PointerPrev = @PointerCurr+1
            End
            else
                Break
        End
        --因为最后一个后面没有逗号,所以在循环中跳出,需另外再删除
         set @TName=SUBSTRING(@CompanyName,@PointerPrev,LEN(@CompanyName)-@PointerPrev+1)

         DELETE FROM TestA    WHERE Name=@TName

  • 相关阅读:
    【Teradata】DSA服务器tdactivemq重启清理消息队列步骤
    什么是5G
    【时序数据库】十分钟系列
    16_Android的数据存储_ SharedPreference、XML和JSON
    15_Android文件读写操作
    14_TTS
    13_拍照、录像和音频
    12_Sensor简单实例
    11_SurfaceView绘图
    10_多点触摸交互处理
  • 原文地址:https://www.cnblogs.com/LoveSuk/p/5775768.html
Copyright © 2020-2023  润新知