在SQL Server数据库中拆分字符串函数

数据库 SQL Server
SQL Server 是一个关系数据库管理系统,大家都知道在SQL Server数据库中有很多的字符串函数,那么如何在SQL Server数据库中拆分字符串函数?下文将会详细的为大家讲解。

SQL Server数据库中拆分字符串函数的具体方法:

  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

  例如:select * from uf_StrSplit('1,1,2,50',',')

  输出结果:

  str_id string
  1 1
  2 1
  3 2
  4 50

上文中涉及到很多的字符,对于一些初学者来说,可能是比较难理解,但是这个知识点确实是经常会用到的,而且相当实用,希望大家好好学习,争取能熟练的掌握。

【编辑推荐】

  1. SQL Server数据库多种方式查找重复记录
  2. 教你如何在SQL Server数据库中加密数据
  3. 浅析SQL Server数据库在项目中的备份与还原
责任编辑:迎迎 来源: 希赛网
相关推荐

2010-06-17 16:30:23

SQL Server数

2010-06-17 15:54:04

SQL Server数

2010-06-17 16:06:07

SQL Server数

2010-11-08 17:07:41

SQL Server字

2010-09-13 15:50:03

sql server数

2010-07-14 16:37:33

SQL Server拆

2021-03-14 15:07:55

SQLServer数据库字符串

2010-09-13 14:55:09

sql server字

2011-08-09 16:52:24

2010-09-06 17:30:46

SQL函数

2010-06-28 15:18:51

SQL Server

2011-03-23 10:08:09

2010-06-04 14:59:06

MySQL数据库

2010-10-21 15:26:35

SQL Server字

2010-06-17 16:22:04

SQL Server

2010-09-13 15:12:26

sql server字

2010-07-15 17:28:50

SQL Server

2011-05-11 10:54:47

分组想加

2009-08-07 14:02:12

C#数据库连接字符串

2010-09-13 15:06:40

sql server字
点赞
收藏

51CTO技术栈公众号