• SQL实现数组的功能


    今天在工作遇到了一个问题,需要往表中添加数量不小而且没有规律的的数据。思考后我想到了使用高级语言中的数组功能解决。

    由于SQL Server并没有数组类型,ANSI SQL-92标准中并没有任何有关数组方面的定义。要实现其他高级语言中的数组功能,我们必须使用一些特殊的处理方法,其中包括特殊设计的字符参数、临时表、XML等。

    我想到的是用特殊字符分割提取的方法:

    用VARCHAR数据类型来模拟一个数组,数组中元素用逗号隔开,接着通过WHILE循环使用CHARINDEX以及SUBSTRING函数来提取其中的元素。
    实例代码如下:

     1 create proc insertUsers_of_array (@Namelist varchar(1000))
     2 
     3 as
     4 
     5 declare @ix int,@pos int,@str varchar(1000)
     6 
     7 set @pos=1
     8 
     9 set @ix=1
    10 
    11 while @ix>0
    12 
    13 begin
    14 
    15 set @ix=charindex(',',@List,@pos)
    16 
    17 if @ix>0
    18 
    19 set @str=substring(@list,@pos,@ix-@pos)
    20 
    21 else
    22 
    23 set @str=substring(@list,@pos,len(@list))
    24 
    25 set @str=ltrim(rtrim(@str))
    26 
    27 insertinto [dbo].[userlist] values(@str,1,'Xiaoming',GETDATE(),'Xiaoming',GETDATE())
    28 
    29 set @pos=@ix+1
    30 
    31 end

      

    该示例代码可以插入没有规律的名字的数据集,调用方式为: 

     exec insertUsers_of_array@list='Mi,Meizu,Oppo,Huawei,ZTZ,PPK'

    结果如下:

     

  • 相关阅读:
    装饰器函数
    二分查找
    jmter 二次开发 IDEA 项目5.1
    python 测试框架nose
    pycharm 参数、快捷键、调试模式
    IDea 工具debug模式详细使用说明
    MySQL zip安装
    adb 设备命令
    兰亭集序 王羲之
    adb 命令实用
  • 原文地址:https://www.cnblogs.com/theseven/p/4360382.html
Copyright © 2020-2023  润新知