一、按指定符号分割字符串,返回分割后的元素个数,方法很简单,就是看字符串中存在多少个分隔符号,然后再加一,就是要求的结果。
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 @[email protected]+1
set @location=charindex(@split,@str,@start)
set @[email protected]+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 @[email protected][email protected]
set @location=charindex(@split,@str,@start)
set @[email protected]+1
end
if @location =0 select @location =len(@str)+1
--这儿存在两种情况:1、字符串不存在分隔符号 2、字符串中存在分隔符号,跳出while循环后,@location为0,那默认为字符串后边有一个分隔符号。
return substring(@str,@start,@[email protected])
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 @[email protected][email protected]
while(@SourceSql<>‘‘)
begin
set @ch=left(@SourceSql,charindex(‘,‘,@SourceSql,1)-1)
insert @temp values(@ch)
set @SourceSql=stuff(@SourceSql,1,charindex(‘,‘,@SourceSql,1),‘‘)
end
return
end
----调用
select * from dbo.f_splitstr(‘1,2,3,4‘,‘,‘)
--结果:
1
2
3
4
SQLserver字符串分割函数
时间: 2024-11-08 17:25:48
SQLserver字符串分割函数的相关文章
php 字符串分割函数split
说明 array split ( string $pattern , string $string [, int $limit ] ) 本函数返回一个字符串数组,每个单元为 string 经区分大小写的正则表达式 pattern 作为边界分割出的子串.如果设定了 limit,则返回的数组最多包含 limit 个单元,而其中最后一个单元包含了 string 中剩余的所有部分.如果出错,则 split() 返回 FALSE. Example #1 split(
oracle | 字符串分割函数
/** * 字符串分割函数. * @param P_STR 待分割的字符串 * @param 分隔符 * @return 自定义table类型TY_STR_SPLIT. * 使用方法 select column_value from table(fn_split('1,2',',')) * @Author: xDer */ CREATE OR REPLACE FUNCTION FN_SPLIT(P_STR IN VARCHAR2, P_DELIMITER IN VARCHAR2) RETURN
JavaScript中字符串分割函数split用法实例
这篇文章主要介绍了JavaScript中字符串分割函数split用法,实例分析了javascript中split函数操作字符串的技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了JavaScript中字符串分割函数split用法.分享给大家供大家参考.具体如下: 先来看下面这段代码: <script type="text/javascript"> var str="How are you doing today?" document.write
Split字符串分割函数
非常非常常用的一个函数Split字符串分割函数. Dim myTest myTest = "aaa/bbb/ccc/ddd/eee/fff/ggg" Dim arrTest arrTest = Split(myTest , "/" , -1 , 1) Dim i For i = 0 to ubound(arrTest) print "arrTest(" & i & ") = " & arrTest(i)
hive函数 -- split 字符串分割函数
hive字符串分割函数 split(str, regex) - Splits str around occurances that match regexTime taken: 0.769 seconds, Fetched: 1 row(s) 返回值为一个数组 a.基本用法: 例1: split('a,b,c,d',',') 得到的结果: ["a","b","c","d"] b.截取字符串中的某个值: 当然,我们也可以指定取结
C++的字符串分割函数
原文: C++的字符串没有分割函数,因此需要自己写方便使用.而受到开发工具的影响,有很多用起来比较麻烦啦,下面这个比较不错奥. 用STL进行字符串的分割 涉及到string类的两个函数find和substr:1.find函数原型:size_t find ( const string& str, size_t pos = 0 ) const;功能:查找子字符串第一次出现的位置.参数说明:str为子字符串,pos为初始查找位置.返回值:找到的话返回第一次出现的位置,否则返回string::npos
字符串分割函数StringTokenizer与strtok,strsep的比较
字符串分割在我们在开发过程中经常遇到的问题.根据一个标记串,将输入的字符串分割成多个子串.实际编码当中,我们发现使用不同的函数得到的结果也会有区别. 为了方便比较,我们定义一个统一的输入输出比较方式: vector<string> parsetoken(const string &str, const string& delim); 输入源字符串str,分割标记串为delim,分割的子串保存到vector<string>中. 我们分别使用内部的StringToken
字符串分割函数--拆分成多行(转)
--字符串拆分成行 declare @str varchar(8000) set @str = 'a1,b1,c2,d1,e3,f5' --,换成 union all select set @str = 'select name='''+replace(@str,',',''' union all select ''')+'''' exec(@str) /*name ---- a1 b1 c2 d1 e3 f5 */ --字符串分割函数--拆分成多行 create function
ASP.NET中常用的字符串分割函数
asp.net字符串分割函数用法 先来看个简单的实例 但是其数组长度却是25,而不是3.下面这种方法是先将“[111cn.net]”替换成一个特殊字符,比如$,在根据这个字符执行Split 例如下面我要根据[111cn.net]分割的话 代码如下 复制代码 string[] arrstr2 = str.Replace("[111cn.net]", "$").Split('$'); 好了看其它方法最简单最常用的方法,以一个指定的字符进行的分割 打开vs.net新建一个