SQL语句可以声明使用数组么?
2个回答
展开全部
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测试程序:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询