sql实现split函数的脚本

 更新时间:2013年11月25日 15:25:29   作者:  
这篇文章主要介绍了sql实现split函数的脚本,大家参考使用吧

复制代码 代码如下:

--创建一个函数,函数中有两个参数
Create FUNCTION [dbo].[SplitToTable]
(
@SplitString nvarchar(max),--输入的字符串
@Separator nvarchar(10)=' '--分割条件
)
--返回的数据为一个表
RETURNS @SplitStringsTable TABLE
(
[id] int identity(1,1),
[value] nvarchar(max)
)
AS
BEGIN
DECLARE @CurrentIndex int;--当前索引
DECLARE @NextIndex int;--下一个索引
DECLARE @ReturnText nvarchar(max);--返回内容
SELECT @CurrentIndex=1;--设置当前索引初始值为1
--当当前索引小于字符串长度时,执行循环体
WHILE(@CurrentIndex<=len(@SplitString))
BEGIN
--CHARINDEX函数返回字符或者字符串在另一个字符串中的起始位置。CHARINDEX函数调用方法如下:
--CHARINDEX ( expression1 , expression2 [ , start_location ] )
-- Expression1是要到expression2中寻找的字符中,start_location是CHARINDEX函数开始在expression2中找expression1的位置。
SELECT @NextIndex=charindex(@Separator,@SplitString,@CurrentIndex);
IF(@NextIndex=0 OR @NextIndex IS NULL)
SELECT @NextIndex=len(@SplitString)+1;
--函数用法:SUBSTRING ( expression, start, length )
SELECT @ReturnText=substring(@SplitString,@CurrentIndex,@NextIndex-@CurrentIndex);
INSERT INTO @SplitStringsTable([value]) VALUES(@ReturnText);
SELECT @CurrentIndex=@NextIndex+1;
END
RETURN;
END
go
--测试函数
select * FROm dbo.SplitToTable('a,b,c,d,e,f,g', ',')

相关文章

  • 如何查看SQLSERVER中某个查询用了多少TempDB空间

    如何查看SQLSERVER中某个查询用了多少TempDB空间

    最近帮助客户做sql优化的过程中,发现客户的TempDB存在非常大的压力,经过排查是发现某些语句对TempDB的巨量使用所导致。那么如何才能排查出来呢,我们来探讨下。
    2014-08-08
  • sqlserver关于分页存储过程的优化【让数据库按我们的意思执行查询计划】

    sqlserver关于分页存储过程的优化【让数据库按我们的意思执行查询计划】

    先来对比两段分页SQL,假设条件:news表有15万记录,NewsTypeId=10有9万记录,当前查询NewsTypeID=10。那么,你会认为哪个SQL效率会高呢?
    2011-08-08
  • SQL Server Agent 服务启动后又停止问题

    SQL Server Agent 服务启动后又停止问题

    这篇文章主要介绍了SQL Server Agent 服务启动后又停止问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • 一文搞懂SQL注入攻击

    一文搞懂SQL注入攻击

    SQL注入(SQL Injection)攻击是其中最普遍的安全隐患之一,因此,如何防范SQL注入攻击成为了网络安全领域的一个重要议题。本文通过代码示例详细介绍了SQL注入攻击,需要的朋友可以参考一下
    2023-04-04
  • SQL Server正则表达式 替换函数应用详解

    SQL Server正则表达式 替换函数应用详解

    在sql开发过程中,经常会使用正则,本文将以此问题进行详细介绍SQL Server正则表达式 替换函数应用,需要了解更多的朋友可以参考下
    2012-11-11
  • 探讨Sql Server中的declare基本知识

    探讨Sql Server中的declare基本知识

    这篇文章主要探讨Sql Server中的declare基本知识,实战探讨主要来源于触发器的Demo,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-07-07
  • 查询存储过程中特定字符的方法

    查询存储过程中特定字符的方法

    这篇文章介绍了查询存储过程中特定字符的方法,有需要的朋友可以参考一下
    2013-09-09
  • SQL Server Reporting Services 匿名登录的问题及解决方案

    SQL Server Reporting Services 匿名登录的问题及解决方案

    这篇文章主要介绍了关于 SQL Server Reporting Services 匿名登录的解决方案,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09
  • 详解SQL Server 中 JSON_MODIFY 的使用

    详解SQL Server 中 JSON_MODIFY 的使用

    SQL Server 从 2016 开始支持了一些 JSON操作,最近的项目里也是好多地方字段直接存成了 JSON,需要了解一下怎么在SQL Server 中操作 JSON.这篇文章主要介绍了SQL Server 中 JSON_MODIFY 的使用,需要的朋友可以参考下
    2019-11-11
  • SQL Server 全文搜索功能介绍

    SQL Server 全文搜索功能介绍

    SQL Server 的全文搜索(Full-Text Search)是基于分词的文本检索功能,依赖于全文索引。下面通过本文给大家介绍SQL Server 全文搜索功能介绍,需要的朋友参考下吧
    2017-12-12

最新评论