zoukankan
html css js c++ java
SQL Server字符串分割
一、按指定符号分割字符串,返回分割后的元素个数,方法很简单,就是看字符串中存在多少个分隔符号,然后再加一,就是要求的结果。
CREATE
function
Get_StrArrayLength
(
@str
varchar
(
1024
),
--
要分割的字符串
@split
varchar
(
10
)
--
分隔符号
)
returns
int
as
begin
declare
@location
int
declare
@start
int
declare
@length
int
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
调用示例:
select
dbo.Get_StrArrayLength(
'
78,1,2,3
'
,
'
,
'
)
返回值:
4
二、按指定符号分割字符串,返回分割后指定索引的第几个元素,象数组一样方便
CREATE
function
Get_StrArrayStrOfIndex
(
@str
varchar
(
1024
),
--
要分割的字符串
@split
varchar
(
10
),
--
分隔符号
@index
int
--
取第几个元素
)
returns
varchar
(
1024
)
as
begin
declare
@location
int
declare
@start
int
declare
@next
int
declare
@seed
int
set
@str
=
ltrim
(
rtrim
(
@str
))
set
@start
=
1
set
@next
=
1
set
@seed
=
len
(
@split
)
set
@location
=
charindex
(
@split
,
@str
)
while
@location
<>
0
and
@index
>
@next
begin
set
@start
=
@location
+
@seed
set
@location
=
charindex
(
@split
,
@str
,
@start
)
set
@next
=
@next
+
1
end
if
@location
=
0
select
@location
=
len
(
@str
)
+
1
--
这儿存在两种情况:1、字符串不存在分隔符号 2、字符串中存在分隔符号,跳出while循环后,@location为0,那默认为字符串后边有一个分隔符号。
return
substring
(
@str
,
@start
,
@location
-
@start
)
end
调用示例:
select
dbo.Get_StrArrayStrOfIndex(
'
8,9,4
'
,
'
,
'
,
2
)
返回值:
9
三、结合上边两个函数,象数组一样遍历字符串中的元素
create
function
f_splitstr(
@SourceSql
varchar
(
8000
),
@StrSeprate
varchar
(
100
))
returns
@temp
table
(F1
varchar
(
100
))
as
begin
declare
@ch
as
varchar
(
100
)
set
@SourceSql
=
@SourceSql
+
@StrSeprate
while
(
@SourceSql
<>
''
)
begin
set
@ch
=
left
(
@SourceSql
,
charindex
(
@StrSeprate
,
@SourceSql
,
1
)
-
1
)
insert
@temp
values
(
@ch
)
set
@SourceSql
=
stuff
(
@SourceSql
,
1
,
charindex
(
@StrSeprate
,
@SourceSql
,
1
),
''
)
end
return
end
--
--调用
select
*
from
dbo.f_splitstr(
'
1,2,3,4
'
,
'
,
'
)
--
结果:
1
2
3
4
查看全文
相关阅读:
经典isset,empty,is_null三个的用法与区别,最详细的讲解
TP框架分页bootstrap冲突问题
TP框架右下角运行时间
TP6的跳转坑 和cmd报错 php版本和composer扩展坑
TP5.1模板继承
TP5.1模型关联
Oracle语句
ajaxform和ajaxgrid获取数据源、添加数据
confirm和alert弹窗
UEP-弹窗
原文地址:https://www.cnblogs.com/pcmax/p/1578464.html
最新文章
EF批量插入(转)
用户登录后超过时间后自动弹出功能
用开源 ASP.NET MVC 程序 Bonobo Git Server 搭建 Git 服务器(转)
SQL将原始数据进行MD5加密转存
IQueryable与IEnumerable
sql开启远程访问
linux系统操作mysql常用指令
Spark性能调优之Shuffle调优
数据仓库的架构以及数据分层
spark处理mongodb数据
热门文章
sparksql加载mongodb指定字段,并对加载进来的json做解析
spark读取mongodb 并使用fastjson对读取json进行处理
JSON转换处理器fastjson
Python的可变类型与不可变类型
Spark面对OOM问题的解决方法及优化总结 (转载)
hive元数据存储到mysql后因字符集原因导致的中文乱码解决方法
LayuiAdmin+TP5.1 数据表格添加数据详解
TP5.1和 layui表格table创建
TP在本地运行正常上传到服务器就报错?为你解答疑惑!
layui框架引入TP教程
Copyright © 2011-2022 走看看