Sql Server分割字符串函数

-- 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
时间: 2024-10-07 05:29:48

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

sql server常用字符串函数

--返回字符表达式中最左侧字符的ASCII代码值 select ASCII('a')--97 select ASCII('A')--65 select ASCII('aA')--97 --将整数ASCII代码转换为字符 select CHAR(97)--a select CHAR(65)--A select CHAR('65')--A SELECT CHAR('A')--在将 varchar 值 'A' 转换成数据类型 int 时失败. --返回字符表达式最左侧指定数目的字符串 select L

SQL Server之字符串函数

以下所有例子均Studnet表为例:  计算字符串长度len()用来计算字符串的长度 select sname ,len(sname) from student 字符串转换为大.小写lower() 用来将一个字符串转换为小写,upper() 用来将一个字符串转换为大写 select lower('I AM A STUDENT !')select upper('i am a student !') 截去字符串左.右侧空格                                       

SQL Server分割字符串

下面是创建了以","分割字符串的函数:  create   function   f_splitstr(@SourceSql   varchar(8000),@StrSeprate   varchar(100))      returns   @temp    table(F1   varchar(100))      as        begin      declare   @ch    as   varchar(100)      set   @[email protected

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

LEN:返回指定字符串表达式的字符(而不是字节)数,其中不包含尾随空格. DATALENGTH:返回用于表示任何表达式的字节数. 示例1:(相同,返回结果都为5): select LEN ('sssss') select DATALENGTH('sssss') 示例2:(不相同,DATALENGTH是LEN的两倍): select LEN(N'sssss') select DATALENGTH(N'sssss') 示例3:(不相同,DATALENGTH是LEN的两倍多,由于LEN计算时不包含尾空

SQL Server使用PARSENAME函数来处理IP地址字符串

IP V4地址是用3个点分隔的字符串,有时候需要在数据库中进行处理,比如判断IP地址是否有效等. 通常想到的方法是自己写个函数,比如利用CHARINDEX.SUBSTRING等函数组合来获取IP地址的各个部分,然后处理. SQL Server用来表示对象的时候通常采取 架构名.对象名.数据库名.架构名.对象名.链接服务器名.数据库名.架构名.对象名 等方式 比如dbo.tablename.master.dbo.tablename.[192.168.1.100].master.dbo.tablen

SQL SERVER 下PadLeft函数

在.net中,可以使用String.PadLeft函数左对齐字符串,在左边用指定的Unicode字符填充以达到指定的总长度.      例如:在做自动编号这样使用 1: int ID = da.GetMaxNum() + 1; 2: this.tbID.Text = ID.ToString().PadLeft(6, '0'); 1: --在sql中 2: 3: --功能:右对齐的字符,在左边用指定的字符填充以达到指定的总长度. 4: --原始字符 @num:填充字符 @paddingChar:字

SQL Server 基础 04 函数与分组查询数据

函数与分组查询数据 系统函数分 聚合函数.数据类型转换函数.日期函数.数学函数 . . . 1. 聚合函数 主要是对一组值进行计算,然后返回一个值. 聚合函数包括 sum(求和).avg(求平均值).min().max().count(求数量) sum函数语法  :  sum(列明) select sum(sno) as 序号和 from stu_info avg select avg(sno) as 序号平均值 from stu_info . . . count 用来一组值的个数,统计 sel

SQL Server 2005 MD5函数

原文:SQL Server 2005 MD5函数 在SQL Server 2005下自带的函数HashBytes() ,此函数是微软在SQL Server 2005中提供的,可以用来计算一个字符串的MD5和SHA1值,使用方法如下: --获取123456的MD5加密串 select hashbytes('MD5', '123456') ; --获取123456的SHA1加密串 select hashbytes('SHA1', '123456') ; 有了这个函数可以在SQL Server中为字符

sql server 的datediff函数

这两天要把一个sqlserver数据库的程序改成oracle的,发现两个数据库之间的函数很多不一样.sqlserver的数据库中的DateDiff 函数用法解释如下: 描述 返回两个日期之间的时间间隔. 语法 DateDiff(interval, date1, date2 [,firstdayofweek][, firstweekofyear]]) DateDiff 函数的语法有以下参数: 参数 描述 interval 必选.字符串表达式,表示用于计算 date1 和 date2 之间的时间间隔