最新七乐彩 一休彩票1xcp,中年妇女图片,故乡的原风景下载
如果有一个字符串 eg: "sun,star,moon,clouds",想要在ms sql中根据给定的分隔符','把这个字符串分解成各个元素[sun] [star] [moon] [clouds],如何实现呢?为此,创建一个function,代码如下:
create function [dbo].[split_strbydelimiter](@string varchar(8000), @delimiter char(1))
returns @temptable table (items varchar(8000))
as
begin
declare @idx int
declare @slice varchar(8000)
select @idx = 1
if len(@string)<1 or @string is null return
while @idx!= 0
begin
set @idx = charindex(@delimiter,@string)
if @idx!=0
set @slice = left(@string,@idx - 1)
else
set @slice = @string
if(len(@slice)>0)
insert into @temptable(items) values(@slice)
set @string = right(@string,len(@string) - @idx)
if len(@string) = 0 break
end
return
end
示例:如果输入
select * from dbo.split_strbydelimiter('sun,star,moon,clouds',',')
结果返回
sun
star
moon
clouds
在上面的代码做变形,返回有多少个元素
create function [dbo].[getcount_split_strbydelimiter](@string varchar(8000), @delimiter char(1))
returns int
as
begin
declare @temptable table (items varchar(8000))
declare @splitcount int
declare @idx int
declare @slice varchar(8000)
select @idx = 1
if len(@string)<1 or @string is null return 0
while @idx!= 0
begin
set @idx = charindex(@delimiter,@string)
if @idx!=0
set @slice = left(@string,@idx - 1)
else
set @slice = @string
if(len(@slice)>0)
insert into @temptable(items) values(@slice)
set @string = right(@string,len(@string) - @idx)
if len(@string) = 0 break
end
set @splitcount=(select count(*) from @temptable)
return @splitcount
end
示例
select dbo.getcount_split_strbydelimiter('sun,star,moon,clouds',',')
结果返回
4
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!!
点击进行留言回复
相关文章:
-
-
-
sql某个日期是当年的第几周
/* *周一作为一周的开始 *当年的1月1号所在的周算作第一周 */ CREATE function GetWeekIndexFirstDate ( @...
[阅读全文]
-
-
数据库SQL---范式
1、数据冗余导致的问题:冗余存储、更新异常、插入异常、删除异常。 2、函数依赖:一种完整性约束。 在关系模式r(R)中,α属于R,β属于R。 1)α函数...
[阅读全文]
-
-
数据库SQL---查询
1、查询所有列 select *from emp;--*表示所有的,from emp表示从emp表中查询。 2、查询指定列 select empno,e...
[阅读全文]
-
-
-
-
网友评论