数组是非常方便的一种数据结构,但在sql server中却不被支持,故编写储存过程时非常不便,我们可以将多个字符串用特定的连接字符连接起来作为参数,需要时再拆开,从而达到模拟字符串的目的,实现方法是建一个表值函数,返回拆分后的情况,如下:
-- =============================================
-- Author:苟安廷
-- Create date: 2008-1-19
-- Description:将一个字符串拆分到表中
--select * from fSpitStringToTable(';123;223m;323;',';')
-- =============================================
Create FUNCTION [dbo].[fSpitStringToTable]
(
@List nvarchar(4000),--被拆分的字符串
@SplitChar char--用于分割的字符
)
RETURNS @Result table (子串 nvarchar(4000),次序 int )
AS
BEGIN
--声明用于存放拆分的子串和剩下的字符串
declare @ChildStr nvarchar(4000)
set @ChildStr=''
--去掉前导的分隔符
while Charindex(@SplitChar,@List,0)=1
set @List=right(@List,len(@List)-1)
--去掉后面的分隔符
while right(@List,1)=@SplitChar
set @List=left(@List,len(@List)-1)
declare @nIndex int
declare @Order int--次序
set @Order=1
while len(@List)>0
begin
set @nIndex=Charindex(@SplitChar,@List,0)
if @nIndex>0
begin
set @ChildStr=left(@List,@nIndex-1)
set @List=right(@List,len(@List)-@nIndex)
end
else
begin
set @ChildStr=@List
set @List=''
end
if len(@ChildStr)>0
begin
insert into @Result(子串,次序) values(@ChildStr,@Order)
set @Order=@Order+1
end
end
return
END
分享到:
相关推荐
Sql Server数据库中自定义拆分字符串函数Split()
sqlserver中根据某个字符切割字符串函数,比如根据逗号切割字符串,结果返回的是一个表值函数,这个函数返回结果字段包含Id和Value,Id为序号,Value为切割后的值
SQLServer逗号分隔的字符串转换成表
自己写了一个function 用于处理拆分时的逻辑运算,性能比网上找的快好几倍, 代码和说明:https://blog.csdn.net/jimyao37/article/details/123522885
将sql sqlser 日期类型转化成各种格式的字符串。
2、按指定符号分割字符串,返回“分割后指定索引的第几个元素”的值,象数组一样方便 3、检查一个元素是否在数组中,返回1或0 4、检查一个元素是否与数组中的相匹配,并返回相匹配的数组的值。参数值为0表示全模糊...
使用sqlserver分割字符串,使用存储过程使可简化参数处理。
sql server拼接字符串查询语句。 普通拼接字符串和拼接某一列的所有值。
SQL Server查询中的特殊字符处理 我们都知道SQL Server查询过程中,单引号“'”是特殊字符,所以在查询的时候要转换成双单引号“''”。 但这只是特殊字符的一个,在实际项目中,发现对于like操作还有以下特殊字符:...
–说明:例如,将下列数据 id id_value —————– 1 ‘aa,bb’ 2 ‘aa,bb,cc’ 3 ‘aaa,bbb,ccc’ –转换成以下的格式 id id_value —————– 1 ‘aa’ 1 ‘bb’ 2 ‘aa’ 2 ‘bb’ 2 ‘cc’ 3 ‘aaa’ 3 ‘bbb...
ADO连接SQL Server的数据库连接字符串
SQLServer数据库中创建字符串截取功能(Split),调用方法: Split(string,str)
创建函数,拆分字符串
sqlserver连接字符串大全,基本涵盖全了
资源名称:MS-SQL SERVER从字符串中搜索符合指定范围的数值资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
主要用于在数据库设计时需要自己生成定长的字符串作为关键字。这一个用户字符串每次递增而形成新串的数据库函数方法。
SQL Server中,在“整型数字”和“字符串表示的十六进制数字”之间进行转换的函数: IntToHex 数字转十六进制 HexToInt 十六进制转数字
SqlServer时间日期处理函数及字符串转换 SqlServer时间日期处理函数及字符串转换 文章分类:数据库 最近做的报表,用SqlServer2005,边做边学吧,虽然速度有些慢~
SQL截取以逗号分隔的字符串SQL截取以逗号分隔的字符串SQL截取以逗号分隔的字符串SQL截取以逗号分隔的字符串
代码如下: DECLARE @idoc int; DECLARE @doc xml; set @doc=cast(‘<Root><item>’+replace(@SelectedProjectArray,’,’,'</ProjID></item><item><ProjID>’)+'</ProjID></item>’ as xml) EXEC sp_xml_...