|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Federated将不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用函数|字符串T-SQL对字符串的处置才能对照弱,好比我要轮回遍历象1,2,3,4,5如许的字符串,假如用数组的话,遍历很复杂,可是T-SQL不撑持数组,以是处置上去对照贫苦。下边的函数,完成了象数组一样去向理字符串。
一,用一时表作为数组createfunctionf_split(@cvarchar(2000),@splitvarchar(2))
returns@ttable(colvarchar(20))
as
begin
while(charindex(@split,@c)0)
begin
insert@t(col)values(substring(@c,1,charindex(@split,@c)-1))
set@c=stuff(@c,1,charindex(@split,@c),)
end
insert@t(col)values(@c)
return
end
go
select*fromdbo.f_split(dfkd,dfdkdf,dfdkf,dffjk,,)
dropfunctionf_splitcol
--------------------
dfkd
dfdkdf
dfdkf
dffjk
(所影响的行数为4行)
2、按指定标记支解字符串,前往支解后的元素个数,办法很复杂,就是看字符串中存在几个分开标记,然后再加一,就是请求的了局。
CREATEfunctionGet_StrArrayLength
(
@strvarchar(1024),--要支解的字符串
@splitvarchar(10)--分开标记
)
returnsint
as
begin
declare@locationint
declare@startint
declare@lengthint
set@str=ltrim(rtrim(@str))
set@location=charindex(@split,@str)
set@length=1
while@location0
begin
set@start=@location+1
set@location=charindex(@split,@str,@start)
set@length=@length+1
end
return@length
end
挪用示例:selectdbo.Get_StrArrayLength(78,1,2,3,,)
前往值:4
3、按指定标记支解字符串,前往支解后指定索引的第几个元素,象数组一样便利
CREATEfunctionGet_StrArrayStrOfIndex
(
@strvarchar(1024),--要支解的字符串
@splitvarchar(10),--分开标记
@indexint--取第几个元素
)
returnsvarchar(1024)
as
begin
declare@locationint
declare@startint
declare@nextint
declare@seedint
set@str=ltrim(rtrim(@str))
set@start=1
set@next=1
set@seed=len(@split)
set@location=charindex(@split,@str)
while@location0and@index>@next
begin
set@start=@location+@seed
set@location=charindex(@split,@str,@start)
set@next=@next+1
end
if@location=0select@location=len(@str)+1
--这儿存在两种情形:1、字符串不存在分开标记2、字符串中存在分开标记,跳出while轮回后,@location为0,那默许为字符串后边有一个分开标记。
returnsubstring(@str,@start,@location-@start)
end
挪用示例:selectdbo.Get_StrArrayStrOfIndex(8,9,4,,,2)
前往值:9
3、分离上边两个函数,象数组一样遍历字符串中的元素
declare@strvarchar(50)
set@str=1,2,3,4,5
declare@nextint
set@next=1
while@next<=dbo.Get_StrArrayLength(@str,,)
begin
printdbo.Get_StrArrayStrOfIndex(@str,,,@next)
set@next=@next+1
end
挪用了局:
1
2
3
4
5MySQL最初的开发者的意图是用mSQL和他们自己的快速低级例程(ISAM)去连接表格。经过一些测试后,开发者得出结论:mSQL并没有他们需要的那么快和灵活。 |
|