SQL语句可以声明使用数组么?

 我来答
闫灵安
2013-12-20 · TA获得超过1825个赞
知道答主
回答量:144
采纳率:100%
帮助的人:64.9万
展开全部
sql没有数组类型的,不过你可以自定一个varchar类型的变量,里边装字符串,用逗号分开,然后进行分割就成了数组,第一步:数组长度的函数 SQL code Alter Function arrLen(@string varchar(1000),@SpaceMark Varchar(200)) --@String 眼拆分的字符串 @SpaceMark 分割符 Returns intAsBeginDeclare @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)AsBeginDeclare @newString varchar(8000) Declare @ReturnString Varchar(8000) Set @NewString = @String Declare @i intSet @i = 0if(@arrStation>0 And @arrStation<=Dbo.arrLen(@String,@SpaceMark))BeginWhile(@i<@arrStation)BeginSet @NewString = SubString(@NewString,CharIndex(@SpaceMark,@NewString)+1,Len(@NewString)) Set @i = @i + 1EndEndIf(@arrStation<0)BeginSet @ReturnString = '上标越界'EndElse If(@arrStation<dbo.arrLen(@String,@SpaceMark))BeginSet @ReturnString = SubString(@NewString,1,CharIndex(@SpaceMark,@NewString)-1)EndElse if(@arrStation=dbo.arrLen(@String,@SpaceMark))BeginSet @ReturnString = @newStringEndElseBeginSet @ReturnString = '下标越界'EndReturn(@ReturnString) End测试程序:
牟蝶孟胭
2020-01-23 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:25%
帮助的人:749万
展开全部
mysql
语法中有枚举类型,相当于数组。但是Mssql
server
和oracle
中没有类似数组的类型。
但我还是那句话,人是可以变通的,想别的办法实现,一定可以的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式