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 server 随机数函数

    SQL server 随机数函数

    在SQL server中,有个随机函数rand(),有不少新手可能不知道存在这个函数,现在我就把这个函数的一些随机数生成技巧写出来,这是面向菜鸟的,老鸟请不要拍砖呀,我的头还不够硬
    2009-07-07
  • 根据sql脚本修改数据库表结构的几种解决方案

    根据sql脚本修改数据库表结构的几种解决方案

    这篇文章主要介绍了如何根据sql脚本修改数据库表结构,需要的朋友可以参考下
    2014-05-05
  • SQL Server误设置max server memory的处理方法

    SQL Server误设置max server memory的处理方法

    这篇文章主要给大家介绍了关于SQL Server误设置max server memory的处理方法,文中通过示例代码介绍的非常详细,对大家学习或者使用SQL Server具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧下
    2019-12-12
  • Sql Server 字符串聚合函数

    Sql Server 字符串聚合函数

    Sql Server 有如下几种聚合函数SUM、AVG、COUNT、COUNT(*)、MAX 和 MIN,但是这些函数都只能聚合数值类型,无法聚合字符串。
    2009-06-06
  • Sql Server中判断表、列不存在则创建的方法

    Sql Server中判断表、列不存在则创建的方法

    这篇文章主要给大家分享了Sql Server中判断表、列是否存在,如果不存在则创建的方法,文章先给大家简单介绍了Sql Server中判断表中某列是否存在的方法,文中给出了详细的示例代码,需要的朋友们可以参考借鉴,下面来一起看看吧。
    2017-03-03
  • Microsoft Search 服务无法启动 解决办法.

    Microsoft Search 服务无法启动 解决办法.

    尝试用正常系统的注册表项添加到非正常系统中去。(因为对比的两个系统版本、结构相同,所此次就直接通过导入导出注册表项进行批量修改)。
    2009-04-04
  • SQLServer OUTPUT子句的具体使用

    SQLServer OUTPUT子句的具体使用

    本文主要介绍了SQLServer OUTPUT子句的具体使用,OUTPUT 子句允许你捕获由 INSERT、UPDATE 或 DELETE 语句影响的行,并将这些行作为结果集返回,感兴趣可以了解一下
    2024-08-08
  • Sql Server之数据类型详解

    Sql Server之数据类型详解

    本文详细讲解了Sql Server中的数据类型,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-02-02
  • 浅谈SQL语句中WHERE 1=1的作用

    浅谈SQL语句中WHERE 1=1的作用

    本文主要介绍了浅谈SQL语句中WHERE 1=1的作用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • SQL高级应用之同服务器上复制表到另一数据库中并实现去重复

    SQL高级应用之同服务器上复制表到另一数据库中并实现去重复

    项目需求:将数据库Whir_ezMall_Full中的表Whir_Member的数据迁移到数据库Whir_ezMall_Full_c中的Whir_Member表,已存在的ID记录则不插入
    2014-06-06

最新评论