T-SQL里没有数组这个概念。不知道你想干什么,很多地方,可以用临时表,或者表变量来实现。
成都创新互联是一家专业提供防城企业网站建设,专注与网站设计、做网站、成都h5网站建设、小程序制作等业务。10年已为防城众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。
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(@arrStation0 And @arrStation=Dbo.arrLen(@String,@SpaceMark))BeginWhile(@i@arrStation)BeginSet @NewString = SubString(@NewString,CharIndex(@SpaceMark,@NewString)+1,Len(@NewString)) Set @i = @i + 1EndEndIf(@arrStation0)BeginSet @ReturnString = '上标越界'EndElse If(@arrStationdbo.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测试程序:
SQLserver T-SQL暂时不支持数组的,没法声明了,一般用临时表代替吧
存储过程
里定义不了数组。如果是
sqlserver
,那么你可以用表变量,游标来实现你的功能。
如果是
sqlserver2005
以上的版本,可以做clr存储过程,那里面是可以用数组的。