T-SQL对字符串的处理能力比较弱,比如我要循环遍历象1,2,3,4,5这样的字符串,如果用数组的话,遍历很简单,但是T-SQL不支持数组,所以处理下来比较麻烦。下边的函数,实现了象数组一样去处理字符串。
一、按指定符号分割字符串,返回分割后的元素个数,方法很简单,就是看字符串中存在多少个分隔符号,然后再加一,就是要求的结果。
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
三、结合上边两个函数,象数组一样遍历字符串中的元素
declare @str varchar(50)
set @str='1,2,3,4,5'
declare @next int
set @next=1
while @next<=dbo.Get_StrArrayLength(@str,',')
begin
print dbo.Get_StrArrayStrOfIndex(@str,',',@next)
set @next=@next+1
end
调用结果:
1
2
3
4
5
分享到:
相关推荐
2、按指定符号分割字符串,返回“分割后指定索引的第几个元素”的值,象数组一样方便 3、检查一个元素是否在数组中,返回1或0 4、检查一个元素是否与数组中的相匹配,并返回相匹配的数组的值。参数值为0表示全模糊...
瓷都取名网-象数抽签: 冥想抽签法:求测者将要测事情,按预测师所编程序,集中意念反复冥想所测事情的人事与结果,待万念归一后,分先后任意摘取三张签牌。 默念抽签法:求测者反复按预测师所编程序,默念所测...
下边的函数,实现了象数组一样去处理字符串。 一,用临时表作为数组 代码如下: create function f_split(@c varchar(2000),@split varchar(2)) returns @t table(col varchar(20)) as begin while(charindex(@split,@...
象数的读法同平常的读法完全一样。配方中有0,仍读零,如3810 读作三八一零,每秒钟念一个数。 2. 象数配方的结构。较简单的配方是一元结构,如160 或 80;较复杂的配方, 则是二元或三元结构,如 640.20 或 1260....
象数疗法原理是易医结合的自然疗法,以易学的阴阳五行、八卦象数学说为核心,以中医的藏象理论为根底,通过默念一组象数疗疾健身的一种简捷疗法。八卦象数疗法的象数源于〞周易〞,象数是〞易学〞的根本内容。〞易&S...
一组合理的象数默念配方在默念的过程中,人体的机能即处于调节状态,体内细胞中相应的信息能量不断的积累增加,向病灶冲击时会有不适感,甚至原已病愈的部位又出现疼痛不适。出现这种情况,只要头、心、胃三处无不适...
在线象数抽签求测方法: 1.冥想抽签法:求测者将要测事情,按预测师所编程序,集中意念反复冥想所测事情的人事与结果,待万念归一后,分先后任意摘取三张签牌。 2.默念抽签法:求测者反复按预测师所编程序,默念所...
CToolBar 是 MFC 中的一个类,继承自 CWnd,用于创建工具条控件,工具条控件是具有位图和分隔符组成的一组命令按钮,位图按钮部分可以是下推按钮、检查盒按钮、无线按钮等。工具条对象类派生于主窗口架构类 ...
标题中的“主要是根据先天八卦图配合方位来进行象数计算的”揭示了这是一个基于中国古代哲学思想——易经,尤其是先天八卦理论的程序。先天八卦,又称伏羲八卦,是中国古代哲学家伏羲根据自然现象创立的八卦模型,用...
【象数疗法】是一种以数字为基础的非药物治疗方法,源于中国的传统医学理论,结合了易经的八卦原理和中医的脏腑学说。该疗法主张通过默念特定的数字组合来调整人体的能量平衡,以达到治疗疾病的目的。下面将详细解释...
“八卦象数疗法持念注意事项宣贯” 八卦象数疗法是一种特殊的治疗方法,它基于中国古典医学的理论,通过默念特定的数字序列来治疗疾病。以下是八卦象数疗法的注意事项: 一、正确使用象数配方:在使用八卦象数疗法...
象数疗法常见配方 象数疗法是基于中国古代的医学理论和数学算法,通过数值计算来调整人的身体机能,达到治疗和保健的目的。下面是象数疗法中的常见配方: 情绪调整 * 稳定情绪:800·700·260·050 * 克服劳累:...
"如何正确掌握八卦象数预测法的读象法" 摘要:本文讨论了如何正确掌握八卦象数预测法的读象法,强调了基础知识的重要性、 八卦象的特征和特性、读象思维的运用、卦象信息的积累和对应关系的掌握。文章还提出了 ...
而遍历链表则有两种方式:通过索引访问,象数组一样处理;通过std::list<>::iterator链表遍历器进行访问 STL 中的list 就是一 双向链表,可高效地进行插入删除元素。 list不支持随机访问。所以没有 at(pos)和...
第5章 项名达《象数一原》中的无穷级数表示法 第148-184页 5.1 项名达著《象数一原》的知识来源 第148-154页 5.2 《象数一原》中的无穷级数表示法 第154-180页 5.2.1 各图中的无穷级数表示法 第155-170页 5.2.2 ...
《大数据-算法-汉易象数学研究.pdf》这篇文献探讨的是汉代易学中的象数易学,这是中国古代科技和哲学的重要组成部分。象数易学是汉代易学的主流,它关注卦象、数字以及天人之间的关系,对后世易学发展产生了深远影响...