常用的.

IF OBJECT_ID (N'fn_split') IS NOT NULL
DROP FUNCTION  fn_split
go
CREATE  function dbo.fn_split
(
@inputstr varchar(8000),
@seprator varchar(10),
@p int                   --要取第几个数据,从0开始,如果要返回分割后的数组列表清删除--##部分即可
)
returns @temp table (a varchar(200))
as

begin
 declare @i int
 declare @n int  --记录循环的次数
 set @inputstr = rtrim(ltrim(@inputstr))
 set @i = charindex(@seprator, @inputstr)
 SET @n =0        --##

WHILE @i>=1
 begin
  IF  @p=@n  --##
   begin
     insert @temp values(left(@inputstr, @i - 1))
   end
  set @inputstr = substring(@inputstr, @i + 1, len(@inputstr) - @i)
  set @i = charindex(@seprator, @inputstr)
  SET @n = @n+1 --##
 END

if @inputstr <> '' --最后一位
 IF  @p=@n         --##
  insert @temp values(@inputstr)
return
end
go

方法一 
CREATE  FUNCTION uf_StrSplit '1.1.2.50','.'
(@origStr varchar(7000),  --待拆分的字符串
@markStr varchar(100))  --拆分标记,如','
RETURNS @splittable table
(
str_id  varchar(4000) NOT NULL, --编号ID
string  varchar(2000) NOT NULL --拆分后的字符串
)
AS
BEGIN
declare @strlen int,@postion int,@start int,@sublen int,
@TEMPstr varchar(200),@TEMPid int
SELECT @strlen=LEN(@origStr),@start=1,@sublen=0,@postion=1,
@TEMPstr='',@TEMPid=0
if(RIGHT(@origStr,1)<>@markStr )
begin
set @origStr = @origStr + @markStr
end
WHILE((@postion<=@strlen) and (@postion !=0))
BEGIN
IF(CHARINDEX(@markStr,@origStr,@postion)!=0)
BEGIN
SET @sublen=CHARINDEX(@markStr,@origStr,@postion)-@postion;
END
ELSE
BEGIN
SET @sublen=@strlen-@postion+1;
END
IF(@postion<=@strlen)
BEGIN
SET @TEMPid=@TEMPid+1;
SET @TEMPstr=SUBSTRING(@origStr,@postion,@sublen);
INSERT INTO @splittable(str_id,string)
values(@TEMPid,@TEMPstr)
IF(CHARINDEX(@markStr,@origStr,@postion)!=0)
BEGIN
SET @postion=CHARINDEX(@markStr,@origStr,@postion)+1
END
ELSE
BEGIN
SET @postion=@postion+1
END
END
END
RETURN
END
方法二
create function dbo.fn_split
(
@inputstr varchar(8000),
@seprator varchar(10)
)
returns @temp table (a varchar(200))
as

begin
declare @i int

set @inputstr = rtrim(ltrim(@inputstr))
set @i = charindex(@seprator, @inputstr)

while @i >= 1
begin
insert @temp values(left(@inputstr, @i - 1))

set @inputstr = substring(@inputstr, @i + 1, len(@inputstr) - @i)
set @i = charindex(@seprator, @inputstr)
end

if @inputstr <> ''
insert @temp values(@inputstr)

return
end
go

--调用

declare @s varchar(1000)

set @s='Sa1,Sb1,Sc'

select * from dbo.fn_split(@s,',')

drop function dbo.fn_splitsqlserver中实现split分割字符串函数

转载于:https://www.cnblogs.com/eastday/archive/2010/04/16/1713851.html

sqlserver中实现split分割字符串函数相关推荐

  1. java split函数的用法,java拆分字符串_java中split拆分字符串函数用法

    摘要 腾兴网为您分享:java中split拆分字符串函数用法,中信期货,掌上电力,星球联盟,淘集集等软件知识,以及韩剧精灵,每日英语听力vip,龙卷风收音机,优衣库,中国平煤神马集团协同办公系统,光晕 ...

  2. PLSQL Split分割字符串

    系统自带的split,使用起来方便,但是如果字符串太长,可能会出现异常,这里,我自己写了一个也是该名字,放在自己的包中,引用的时候带包名就好了. --系统自带的函数 /*CURSOR cur_temp ...

  3. 分割成数组php字符串函数,PHP 分割字符串函数把字符串分割成数组示例

    这篇文章主要为大家详细介绍了PHP 分割字符串函数把字符串分割成数组示例,具有一定的参考价值,可以用来参考一下. 对PHP分割字符串函数把字符串分割成数组感兴趣的小伙伴,下面一起跟随512笔记的小编两 ...

  4. 在SQL SERVER中实现Split功能的函数,并在存储过程中使用

    CREATE FUNCTION dbo.SplitString (@Expression NVARCHAR(4000), --要拆分的字符串          @Delimiter NVARCHAR( ...

  5. 写出python字符串三种常用的函数或方法_python中几种常用字符串函数

    1.lower()把所有字符换成小写 2.upper()把所有字符换成大写 3.swapcase()大小写互换 4.title()把每个单词首字母大写,他是以所有英文字母的字符来区别是否为一个单词的, ...

  6. sql中截取字符串函数_SQL Server 2017中的顶级SQL字符串函数

    sql中截取字符串函数 SQL Server 2017 has been in the talk for its many features that simplify a developer's l ...

  7. split()分割字符串数组

    用于把一个字符串分割成字符串数组. <!DOCTYPE html> <html><head><meta charset="utf-8"&g ...

  8. SQLServer中使用Split功能分割字符串

    一般的开发语言中,都有Split函数,可以将某个字符串按照分隔符进行分割,返回一个数组,非常方便. 但在SQLServer中,却没有默认提供Split函数,不过总有解决方案,以下是某大牛写的,比起网上 ...

  9. php中的分割字符串函数,关于PHP中两款字符串分割函数explode,str_split

    关于PHP中两款字符串分割函数explode,str_split 2019.02.19 4140 将一个字符串分割成数组在日常的微信公众号开发中的应用应该是很多的.如果指定分割符,可以使用explod ...

最新文章

  1. 花钱参加UI设计培训值得吗?
  2. SAP MM采购定价过程的一个简单例子
  3. Deepmind AlphaStar 如何战胜人类职业玩家【中科院自动化所深度解析】
  4. iOS高效开发必备的10款Objective-C类库
  5. 记事本写python怎么运行-从头学Python之编写可执行的.py文件
  6. 如何为.NETCore安装汉化包智能感知
  7. html里面表格问题
  8. 使IE6下PNG背景图片透明的七种方法
  9. 我的英语六级考试成绩
  10. Optisystem中器件的学习(1-Visualizer Library、Sensors)
  11. 留存记录:Graph500-2.1.4教程
  12. 如何在短时间内快速提升网站响应速度
  13. 30分钟!用Django做一个迷你的Todolist!下篇!
  14. Mosquitto源码学习
  15. 一份spyglass做lint的lint.prj
  16. 刷IP工具、刷IP软件的原理和工作过程
  17. B站顶流何同学对话苹果CEO库克,iPhone某些设计想法源自中国
  18. 物联网使用什么数据库_如何使用关系数据库实现大规模物联网
  19. 分解质因数分 (10分)
  20. unity5.5之NGUI制作动态字体

热门文章

  1. 搭建 mysql-mmm 高可用群集
  2. CentOS 生成SSH-KEY
  3. Docker容器固定IP分配
  4. Linux高级文本处理之gawk语法和基础命令(一)
  5. Korn Shell: typeset
  6. 第 28 小时项目管理过程实践和案例分析
  7. 解决fixed在苹果手机抖动问题/头部底部固定布局
  8. Photoshop绘制植物大战僵尸中的食人花
  9. react与jQuery对比,有空的时候再翻译一下
  10. IIS发布 MVC 配置