SQL Server Split函数
--SQL Server Split函数 --Author:Kavin --说明: --支持分割符多字节 --使用方法 --Select * FROM DBO.F_SQLSERVER_SPLIT('1203401230105045','0') --select * from DBO.F_SQLSERVER_SPLIT('abc1234a12348991234','1234') --Select * from DBO.F_SQLSERVER_SPLIT('ABC',',') CREATE FUNCTION F_SQLSERVER_SPLIT(@Long_str varchar(8000),@split_str varchar(100)) RETURNS @tmp TABLE( ID inT IDENTITY PRIMARY KEY, short_str varchar(8000) ) AS BEGIN DECLARE @long_str_Tmp varchar(8000),@short_str varchar(8000),@split_str_length int SET @split_str_length = LEN(@split_str) IF CHARINDEX(@split_str,@Long_str)=1 SET @long_str_Tmp=SUBSTRING(@Long_str,@split_str_length+1,LEN(@Long_str)-@split_str_length) ELSE SET @long_str_Tmp=@Long_str IF CHARINDEX(REVERSE(@split_str),REVERSE(@long_str_Tmp))>1 SET @long_str_Tmp=@long_str_Tmp+@split_str ELSE SET @long_str_Tmp=@long_str_Tmp IF CHARINDEX(@split_str,@long_str_Tmp)=0 Insert INTO @tmp select @long_str_Tmp ELSE BEGIN WHILE CHARINDEX(@split_str,@long_str_Tmp)>0 BEGIN SET @short_str=SUBSTRING(@long_str_Tmp,1,CHARINDEX(@split_str,@long_str_Tmp)-1) DECLARE @long_str_Tmp_LEN INT,@split_str_Position_END int SET @long_str_Tmp_LEN = LEN(@long_str_Tmp) SET @split_str_Position_END = LEN(@short_str)+@split_str_length SET @long_str_Tmp=REVERSE(SUBSTRING(REVERSE(@long_str_Tmp),1,@long_str_Tmp_LEN-@split_str_Position_END)) IF @short_str<>'' Insert INTO @tmp select @short_str END END RETURN END
相关推荐
sqlserver 实现 行转列 split 分割的函数,具体使用方法写有在文件里。
SQL server中实现类似split功能的函数
set @SourceSql=stuff(@SourceSql,1,charindex(',',@SourceSql,1),'') end return end select * from dbo.f_splitstr('1,2,3,4',',') --全角和半角转换函数 Create FUNCTION f_Convert( @str ...
主要介绍了SQL Server实现split函数分割字符串功能及用法,结合实例形式分析了SQL Server实现split分割字符串的相关技巧与使用方法,需要的朋友可以参考下
下面小编就为大家带来一篇SQL中实现SPLIT函数几种方法总结(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
sqlserver切割字符窜的函数,写好了的,可以直接用
Sql Server数据库中自定义拆分字符串函数Split()
sqlserver 字符串分割表函数(新写法) fn_split 成表函数(带序号)
sqlserver中根据某个字符切割字符串函数,比如根据逗号切割字符串,结果返回的是一个表值函数,这个函数返回结果字段包含Id和Value,Id为序号,Value为切割后的值
一、按指定符号分割字符串,返回分割后的元素个数,方法很简单,是看字符串中存在多少个分隔符号,然后再加一,是要求的结果(标量值函数) 1 create function Func_StrArrayLength 2 ( 3 @str varchar(1024),...
向您SQL Server提供所有缺少的部分,例如正则表达式和动态算术字符串评估。 -- SELECT 3 SELECT SQLNET::New( ' x+y ' ).ValueInt( ' x ' , 1 ).ValueInt( ' y ' , 2 ).EvalInt() as Result 查找您的解决方案: ...
有时我们要用到批量操作时都会对字符串进行拆分,可是SQL Server中却没有自带Split函数,所以要自己来实现了。没什么好说的,需要的朋友直接拿去用吧
以下测试用于去除任何字符串中连线的分隔符 代码如下: –去除字符串中连续的分隔符 declare @str nvarchar(200) declare @split nvarchar(200),@times int set @str=’中 国1 2 34 55 5 6 7 7′;–字符 set @split=...
之前曾有一篇POST是关于用CTE实现Split,这种方法已经比传统的方法高效了。今天我们就这个方法与CLR实现的Split做比较。在CLR实现Split函数的确很简单,dotnet framework本身就有这个function了。
代码如下:–>Title:生成測試數據 –>Author:wufeng4552 –>Date :2009-09-21 09:02:08 if object_id(‘f_split’)is not null drop function f_split go create function f_split ( @s varchar(8000), –待分拆的...
2或者sqlserver, mssqlserver数据库,不区分大小写,需java1.6及以上版本 3或者mysql, mysql数据库,不区分大小写,需java1.5及以上版本 4或者sybase, sybase数据库,不区分大小写(暂未测试) -url 数据库连接的url....
代码如下: USE Demo GO /* 将表Code的列String中的值提取放到...split_Code GO CREATE PROC proc_split_Code AS BEGIN SET NOCOUNT ON DECLARE @Count INT –条数 DECLARE @Index INT –变量 SET @Index = 1 –默认 SEL
SQL对字符串的处理能力比较弱,比如我要循环遍历象1,2,3,4,5这样的字符串,如果用数组的话,遍历很简单,但是T-SQL不支持数组,所以处理下来比较麻烦。下边的函数,实现了象数组一样去处理字符串。