一、按指定符号分割字符串,返回分割后的元素个数,方法很简单,就是看字符串中存在多少个分隔符号,然后再加一,就是要求的结果。
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@location<>0
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
二、按指定符号分割字符串,返回分割后指定索引的第几个元素,象数组一样方便
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@location<>0and@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
三、结合上边两个函数,象数组一样遍历字符串中的元素
createfunctionf_splitstr(@SourceSqlvarchar(8000),@StrSepratevarchar(100))
returns@temptable(F1varchar(100))
as
begin
declare@chasvarchar(100)
set@SourceSql=@SourceSql+@StrSeprate
while(@SourceSql<>'')
begin
set@ch=left(@SourceSql,charindex(',',@SourceSql,1)-1)
insert@tempvalues(@ch)
set@SourceSql=stuff(@SourceSql,1,charindex(',',@SourceSql,1),'')
end
return
end
----调用
select*fromdbo.f_splitstr('1,2,3,4',',')
--结果:
1
2
3
4
分享到:
相关推荐
创建用户定义函数,它是返回值的已保存的 Transact-SQL 例程。用户定义函数不能用于执行一组修改全局数据库状态的操作。与系统函数一样,用户定义函数可以从查询中唤醒调用。也可以像存储过程一样,通过 EXECUTE ...
将字符串分割成数组: 例如将字符串“7369,7499,7521,7844"分割成 7369 7499 7521 7844 用法:可以将分割结果做为一个数组或者数据库表列来使用 select * from scott.emp where empno in (select column_value from...
--按指定符号分割字符串,返回分割后的元素个数,方法很简单,就是看字符串中存在多少个分隔符号,然后再加一,就是要求的结果。 Create function Get_StrArrayLength ( @str varchar(1024), --要分割的字符串 @...
一、按指定符号分割字符串,返回分割后的元素个数,方法很简单,是看字符串中存在多少个分隔符号,然后再加一,是要求的结果(标量值函数) 1 create function Func_StrArrayLength 2 ( 3 @str varchar(1024),...
在SQL中使用分隔符分割字符串的基准 方法 1,000行 10,000行 100,000行 1,000,000行 Eval-SQL.NET 4毫秒 13毫秒 160毫秒 1,650毫秒 fn_split(TVF) 100毫秒 625毫秒 5,500毫秒 55,000毫秒 下载 *本月解锁的PRO...
2.16. Unicode字符串 13 2.17. BEGIN...END 块 14 2.18. TRY块 14 2.19. TOP子句 15 2.20. TRANSACTION编写 15 2.21. 存储过程 16 3.代码注释 16 3.1.代码头部注释 16 3.2.TRANSACTION注释 17 附录A 命名规则 18 4.1...
9.8.4 实现准备/执行模式以避免重传查询字符串 253 9.8.5 避免即席查询 253 9.8.6 对于动态查询sp_executesql优于EXECUTE 253 9.8.7 小心地参数化查询的可变部分 254 9.8.8 不要允许查询中对象的隐含解析 254 ...
9.8.4 实现准备/执行模式以避免重传查询字符串 253 9.8.5 避免即席查询 253 9.8.6 对于动态查询sp_executesql优于EXECUTE 253 9.8.7 小心地参数化查询的可变部分 254 9.8.8 不要允许查询中对象的隐含解析 254 ...
4.3 用字符串函数连接和分割字符串 4.3.1 使用函数explode()、implode()和join() 4.3.2 使用strtok()函数 4.3.3 使用substr()函数 4.4 字符串的比较 4.4.1 字符串的排序:strcmp()、strcasecmp()和strnatcmp() ...
4.3 用字符串函数连接和分割字符串 4.3.1 使用函数explode()、implode()和join() 4.3.2 使用strtok()函数 4.3.3 使用substr()函数 4.4 字符串的比较 4.4.1 字符串的排序:strcmp()、strcasecmp()和strnatcmp() 4.4.2...
4.3 用字符串函数连接和分割字符串 4.3.1 使用函数explode()、implode()和join() 4.3.2 使用strtok()函数 4.3.3 使用substr()函数 4.4 字符串的比较 4.4.1 字符串的排序:strcmp()、strcasecmp()和strnatcmp() ...
0183 指定符号分割字符串 119 0184 如何使用随机密码和字符串 120 第6章 日期和时间 121 0185 获得系统当前时间 122 0186 获得系统当前日期 122 0187 将日期时间格式化为指定格式 122 0188 计算两个...
0183 指定符号分割字符串 119 0184 如何使用随机密码和字符串 120 第6章 日期和时间 121 0185 获得系统当前时间 122 0186 获得系统当前日期 122 0187 将日期时间格式化为指定格式 122 0188 计算两个...
6.5.3 字符串类型函数 6.6 字符串内建函数 6.7 字符串的独特特性 6.7.1 特殊字符串和控制字符 6.7.2 三引号 6.7.3 字符串不变性 6.8 Unicode 6.8.1 术语 6.8.2 什么是...
6.5.3 字符串类型函数 6.6 字符串内建函数 6.7 字符串的独特特性 6.7.1 特殊字符串和控制字符 6.7.2 三引号 6.7.3 字符串不变性 6.8 Unicode 6.8.1 术语 6.8.2 什么是...
7.5.7 用正则表达式进行字符串分割 7.5.7 ——preg_split 115 7.6 字符操作的注意事项 117 7.7 小结 118 第8章 数组操作与数据结构算法 119 8.1 一维数组与多维数组 119 8.1.1 一维数组简介 119 8.1.2 多维数组简介 ...
新增自动删除每行代码前面和后面以某个字符串为标记,在此 标记之前和之后的代码语句,类似于 Trim, LeftTrim, RightTrim 5.5 新增 PBDataWindow.exe,处理从 PBL 里选择 DataWindow 自动 生成和结构体、变量,...