-- Description: 分割字符串函数
-- SELECT * FROM dbo.Split('a,b,c,d,e,f,g',',')
-- ============================================= CREATE FUNCTION [dbo].[Split] ( @Text VARCHAR(8000) , @Sign NVARCHAR(4000) )
RETURNS @tempTable TABLE ( ID INT IDENTITY(1, 1) PRIMARY KEY , [TEMPVAL] VARCHAR(4000) )
AS BEGIN DECLARE @StartIndex INT --开始查找的位置
DECLARE @FindIndex INT --找到的位置
DECLARE @Content VARCHAR(4000) --找到的值 SET @StartIndex = 1 --T-SQL中字符串的查找位置是从1开始的 SET @FindIndex = 0 --开始循环查找字符串逗号
WHILE (@StartIndex <= LEN(@Text)) BEGIN --返回值是找到字符串的位置 SELECT @FindIndex = CHARINDEX(@Sign, @Text, @StartIndex) --判断有没找到 没找到返回0
IF (@FindIndex = 0
OR @FindIndex IS NULL ) BEGIN --如果没有找到者表示找完了 SET @FindIndex = LEN(@Text) + 1 END --初始化下次查找的位置
SET @Content = LTRIM(RTRIM(SUBSTRING(@Text, @StartIndex, @FindIndex - @StartIndex))) SET @StartIndex = @FindIndex + 1 --把找的的值插入到要返回的Table类型中 INSERT INTO @tempTable ([TEMPVAL])
VALUES (@Content) END RETURN END

Sql Server分割字符串函数的更多相关文章

  1. SQL Server 分隔字符串函数实现

    在SQL Server中有时候也会遇到字符串进行分隔的需求.平时工作中常常遇到这样的需求,例如:人员数据表和人员爱好数据表,一条人员记录可以多多人员爱好记录,而往往人员和人员爱好在界面展示层要一并提交 ...

  2. SQL Server:字符串函数

    以下所有例子均Studnet表为例: 1. len():计算字符串长度 len()用来计算字符串的长度,每个中文汉字或英文字母都为一个长度 select sname, len(sname) from ...

  3. SQL Server 分割字符串和合并多条数据为一行

    分割字符串函数 create function f_split(@c varchar(2000),@split varchar(2)) returns @t table(col varchar(20) ...

  4. sql server常用字符串函数

    --返回字符表达式中最左侧字符的ASCII代码值 --将整数ASCII代码转换为字符 )--a )--A ')--A SELECT CHAR('A')--在将 varchar 值 'A' 转换成数据类 ...

  5. SQL Server之字符串函数

    以下所有例子均Studnet表为例:   计算字符串长度len()用来计算字符串的长度 select sname ,len(sname) from student 字符串转换为大.小写lower() ...

  6. SQL Server 分割字符串转列

    CREATE FUNCTION dbo.sf_DS_SplitNVarchar ( @strValues nvarchar(4000) ) RETURNS @tblStrList TABLE (id ...

  7. SQL Server中字符串函数LEN 和 DATALENGTH辨析

    LEN:返回指定字符串表达式的字符(而不是字节)数,其中不包含尾随空格. DATALENGTH:返回用于表示任何表达式的字节数. 示例1:(相同,返回结果都为5): select LEN ('ssss ...

  8. sql server数据字符串分割功能sql

    --分割字符串函数 create FUNCTION [dbo].[GetSplitStringValueInIndex] ( ), --要分割的字符串 ), --分隔符号 @index INT --取 ...

  9. [转] SQL SERVER拼接字符串(字符串中有变量)

    本文转自:http://blog.csdn.net/sikaiyuan2008/article/details/7848926 SQL SERVER拼接字符串(字符串中有变量)对我来说是一个难点,总是 ...

随机推荐

  1. Linux系统下远程文件拷贝scp命令

    在Linux系统下,不同机器上实现文件拷贝 一.将本地文件拷贝到远程机器: scp /home/administrator/news.txt root@192.168.6.129:/etc/squid ...

  2. About SCCM 2012 UDA(User Device Affinity)

    Two useful articles about UDA: http://fbinotto.blogspot.com/2011/09/sccm-2012-user-device-affinity.h ...

  3. MySQL分布式集群之MyCAT(转)

    原文地址:http://blog.itpub.net/29510932/viewspace-1664499/ 隔了好久,才想起来更新博客,最近倒腾的数据库从Oracle换成了MySQL,研究了一段时间 ...

  4. Java设计模式(十二) 策略模式

    原创文章,同步发自作者个人博客,http://www.jasongj.com/design_pattern/strategy/ 策略模式介绍 策略模式定义 策略模式(Strategy Pattern) ...

  5. akka实现的actor

    定义一个 Actor 类 要定义自己的Actor类,需要继承 Actor 并实现receive 方法. receive 方法需要定义一系列 case 语句(类型为 PartialFunction[An ...

  6. ready和onload的区别

    $(document).ready()和window.onload在表面上看都是页面加载时我们就去执行一个函数或动作,但是在具体的细节上$(document) ready()和window onloa ...

  7. (转)实例简述Spring AOP之间对AspectJ语法的支持(转)

    Spring的AOP可以通过对@AspectJ注解的支持和在XML中配置来实现,本文通过实例简述如何在Spring中使用AspectJ.一:使用AspectJ注解:1,启用对AspectJ的支持:通过 ...

  8. git 版本控制

    用gitbash进入类似命令行的窗口 用命令 cd e:/learngit 进入该目录,然后在此目录下初始化$ git init, 于是该文件夹就成为了一个工作区,里面的.git文件就是版本库(rep ...

  9. Apache2 部署 Django

    环境: debian8 apache2.4.10                    #请注意自己的apache版本,不同版本配置文件结构差异很大 django1.10 python3.4 默认ap ...

  10. mysql 索引查询的问题

    之前碰到过一个问题,本来数据量不大的一张表,查询结果反应特别慢,不知道是什么原因. 后来才得知,查询的反应速度与结果集大小有关.  结果集越小反应速度越快.