首页 > 数据库技术 > 详细

SQL实现数组的功能

时间:2015-03-23 17:34:05      阅读:137      评论:0      收藏:0      [点我收藏+]

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

由于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‘

结果如下:

 技术分享

 

SQL实现数组的功能

原文:http://www.cnblogs.com/theseven/p/4360382.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!