sql语句什么情况返回集合 什么情况返回数组
答案:2 悬赏:0 手机版
解决时间 2021-02-03 22:17
- 提问者网友:杀生予夺
- 2021-02-03 01:57
sql语句什么情况返回集合 什么情况返回数组
最佳答案
- 五星知识达人网友:胯下狙击手
- 2021-02-03 03:26
集合和数组也是你在程序里定义的吧,sql里查出来的都是一张表而已
全部回答
- 1楼网友:蓝房子
- 2021-02-03 04:40
sql没有数组类型的,不过你可以自定一个varchar类型的变量,里边装字符串,用逗号分开,然后进行分割就成了数组,
第一步:数组长度的函数
- sql code
- alter function arrlen(@string varchar(1000),@spacemark varchar(200)) --@string 眼拆分的字符串 @spacemark 分割符 returns int as begin declare @i int set @i = (len(@string) - len(replace(@string,@spacemark,'')))/len(@spacemark) return(@i) end
第二步:按索引值取数组中的数据
- sql code
- alter function arrlist(@string varchar(8000),@spacemark varchar(8000),@arrstation int) returns varchar(8000) as begin declare @newstring varchar(8000) declare @returnstring varchar(8000) set @newstring = @string declare @i int set @i = 0 if(@arrstation>0 and @arrstation<=dbo.arrlen(@string,@spacemark)) begin while(@i<@arrstation) begin set @newstring = substring(@newstring,charindex(@spacemark,@newstring)+1,len(@newstring)) set @i = @i + 1 end end if(@arrstation<0) begin set @returnstring = '上标越界' end else if(@arrstation<dbo.arrlen(@string,@spacemark)) begin set @returnstring = substring(@newstring,1,charindex(@spacemark,@newstring)-1) end else if(@arrstation=dbo.arrlen(@string,@spacemark)) begin set @returnstring = @newstring end else begin set @returnstring = '下标越界' end return(@returnstring) end
测试程序: declare @a varchar(1000) declare @i int set @i = 0 set @a = 'a,b,c,d,e,f,g,h,i' while(@i <=dbo.arrlen(@a,',')) begin print dbo.arrlist(@a,',',@i) set @i = @i + 1 end
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯