SQL Server字符串切割函数

 更新时间:2012年07月27日 10:25:39   作者:  
创建用户定义函数,它是返回值的已保存的 Transact-SQL 例程。用户定义函数不能用于执行一组修改全局数据库状态的操作。与系统函数一样,用户定义函数可以从查询中唤醒调用。也可以像存储过程一样,通过 EXECUTE 语句执行
复制代码 代码如下:

CREATE FUNCTION fGetStrBySplit
(
@Source VARCHAR(max),
@Index INT,
@SplitChar VARCHAR(1)
)
RETURNS varchar(MAX)
AS
BEGIN

DECLARE @Len INT
DECLARE @n INT = 0
DECLARE @ChIndex INT
DECLARE @Result VARCHAR(MAX)
--获取总长度
SET @Len = LEN(@Source)
--获取切割字符位置
SET @ChIndex = CHARINDEX(@SplitChar,@Source)

WHILE @ChIndex > 0
BEGIN
IF(@n = @Index)
BEGIN
SET @Source = SUBSTRING(@Source,0,@ChIndex)
BREAK
END

SET @Source = SUBSTRING(@Source,@ChIndex+1,@Len)
SET @ChIndex = CHARINDEX(@SplitChar,@Source)

SET @Len = LEN(@Source)
SET @n = @n + 1

END

RETURN @Source
END
GO

--调用
DECLARE @value VARCHAR(max)
SET @value = dbo.fGetStrBySplit('645002*01_45854_183677_12',0,'_')
PRINT @value

结果:
645002*01
--1

45854

--2

183677

相关文章

  • SQL命令大全-中英文对照

    SQL命令大全-中英文对照

    SQL命令大全-中英文对照...
    2007-11-11
  • SQL Server 监控磁盘IO错误,msdb.dbo.suspect_pages

    SQL Server 监控磁盘IO错误,msdb.dbo.suspect_pages

    suspect_pages 表位于 msdb 数据库中,是在 SQL Server 2005 中引入的。用于维护有关可疑页的信息的 suspect_pages
    2014-10-10
  • SQLServer中merge函数用法详解

    SQLServer中merge函数用法详解

    Merge关键字是一个神奇的DML关键字。它在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句。通过本篇文章给大家介绍sqlserver中merge函数用法详解,感兴趣的朋友一起学习吧
    2015-11-11
  • Navicat导出.sql文件方法

    Navicat导出.sql文件方法

    这篇文章主要介绍了Navicat导出.sql文件方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-10-10
  • sqlserver建立新用户及关联数据库教程

    sqlserver建立新用户及关联数据库教程

    本文讲的是SQLserver数据库创建新用户方法以及赋予此用户特定权限的方法,非常的简单实用,有需要的小伙伴可以参考下
    2018-01-01
  • SQL Server ltrim(rtrim()) 去不掉空格的原因分析

    SQL Server ltrim(rtrim()) 去不掉空格的原因分析

    这篇文章主要介绍了SQL Server ltrim(rtrim()) 去不掉空格的原因分析,原因主要是因为中间存在回车符或者换行符,所以要先将此符号替换掉,具体示例代码大家参考下本文
    2017-08-08
  • SQL Server存储过程中使用表值作为输入参数示例

    SQL Server存储过程中使用表值作为输入参数示例

    这篇文章主要介绍了SQL Server存储过程中使用表值作为输入参数示例,使用表值参数,可以不必创建临时表或许多参数,即可向 Transact-SQL 语句或例程(如存储过程或函数)发送多行数据,这样可以省去很多自定义的代码,需要的朋友可以参考下
    2015-07-07
  • SQL 嵌套查询的具体使用

    SQL 嵌套查询的具体使用

    本文主要介绍了SQL 嵌套查询的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • SQL Server之SELECT INTO 和 INSERT INTO SELECT案例详解

    SQL Server之SELECT INTO 和 INSERT INTO SELECT案例详解

    这篇文章主要介绍了SQL Server之SELECT INTO 和 INSERT INTO SELECT案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • sqlserver 高性能分页实现分析

    sqlserver 高性能分页实现分析

    SQLServer中有一个Set Rowcount的的设置,它的意思是使命令的处理在响应指定的行数之后停止处理命令,利用这个特点,我们可以借用它来在一个千万行级数据表中实现高性能分页查询。
    2011-04-04

最新评论