SQL Server实现split函数分割字符串功能及用法示例

本文实例讲述了SQL Server实现split函数分割字符串功能及用法。分享给大家供大家参考,具体如下:

/* 函数名称:f_SplitToNvarchar 作用:实现split功能的函数 更新记录: 设计思路:将nvarchar类型字符结合的一个串,分隔到一张只有一列nvarchar类型的表里 */ CREATE FUNCTION [dbo].[f_SplitToNvarchar] ( @SourceSql NVARCHAR(MAX),--源分隔字符串 @StrSeprate VARCHAR(10)--分隔符 ) RETURNS @temp TABLE(col NVARCHAR(MAX)) AS BEGIN DECLARE @i INT SET @SourceSql = RTRIM(LTRIM(@SourceSql)) SET @i = CHARINDEX(@StrSeprate, @SourceSql) WHILE @i >= 1 BEGIN INSERT @temp VALUES ( LEFT(@SourceSql, @i -1) ) SET @SourceSql = SUBSTRING(@SourceSql, @i + 1, LEN(@SourceSql) -@i) SET @i = CHARINDEX(@StrSeprate, @SourceSql) END IF @SourceSql <> '\' INSERT @temp VALUES ( @SourceSql ) RETURN END GO

调用示例:

SELECT col FROM f_SplitToNvarchar('1,2,3,4',',');

如图所示:

希望本文所述对大家SQL Server数据库程序设计有所帮助。

时间: 2024-09-30 02:16:49

SQL Server实现split函数分割字符串功能及用法示例的相关文章

SQL Server实现split函数分割字符串功能及用法示例_MsSql

本文实例讲述了SQL Server实现split函数分割字符串功能及用法.分享给大家供大家参考,具体如下: /* 函数名称:f_SplitToNvarchar 作用:实现split功能的函数 更新记录: 设计思路:将nvarchar类型字符结合的一个串,分隔到一张只有一列nvarchar类型的表里 */ CREATE FUNCTION [dbo].[f_SplitToNvarchar] ( @SourceSql NVARCHAR(MAX),--源分隔字符串 @StrSeprate VARCHAR

SQL里类似SPLIT的分割字符串函数

函数|字符串 T-SQL对字符串的处理能力比较弱,比如我要循环遍历象1,2,3,4,5这样的字符串,如果用数组的话,遍历很简单,但是T-SQL不支持数组,所以处理下来比较麻烦.下边的函数,实现了象数组一样去处理字符串.一,用临时表作为数组create   function   f_split(@c   varchar(2000),@split   varchar(2))     returns   @t   table(col   varchar(20))     as       begin

SQL里类似SPLIT的分割字符串函数_MsSql

一,用临时表作为数组 复制代码 代码如下: create function f_split(@c varchar(2000),@split varchar(2)) returns @t table(col varchar(20)) as begin while(charindex(@split,@c)<>0) begin insert @t(col) values (substring(@c,1,charindex(@split,@c)-1)) set @c = stuff(@c,1,char

SQL SERVER 2012新增函数之字符串函数FORMAT详解

前言 本文主要介绍的是使用 FORMAT函数将日期/时间和数字值格式化为识别区域设置的字符串.下面话不多说,来看详细的介绍吧. 格式如下: format(value,format,culture) 第一个参数是要格式化的值,第二个是格式,第三个是区域,比如是中国,还是美国,还是大不列颠等等. FORMAT 依赖于 .NET Framework公共语言运行时 (CLR) 的存在. declare @date datetime = '2014-01-01' select FORMAT( @date,

SQL中自己创建函数,分割字符串

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[getEPnum]') and xtype in (N'FN', N'IF', N'TF')) drop function [dbo].[getEPnum] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[getstrcount]') and xtype in

SQL中实现SPLIT函数几种方法总结(必看篇)_Mysql

例1 代码如下 create function f_split(@SourceSql varchar(8000),@StrSeprate varchar(10)) returns @temp table(a varchar(100)) --实现split功能 的函数 --date :2003-10-14 as begin declare @i int set @SourceSql=rtrim(ltrim(@SourceSql)) set @i=charindex(@StrSeprate,@Sou

php中利用explode函数分割字符串到数组

 这篇文章主要介绍了php中利用explode函数分割字符串到数组,需要的朋友可以参考下 分割字符串    //利用 explode 函数分割字符串到数组  代码如下: <?php  $source = "hello1,hello2,hello3,hello4,hello5";//按逗号分离字符串  $hello = explode(',',$source);    for($index=0;$index<count($hello);$index++)  {  echo $

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 2008 分区函数和分区表

原文:深入浅出SQL Server 2008 分区函数和分区表     当我们数据量比较大的时候,我们需要将大型表拆分为多个较小的表,则只访问部门数据的查询就可以更快的运行,基本原理就是,因为要扫描的数据变的更小.维护任务(例如,重新生成索引或备份表)也可以更快的运行.    我们可以再不通过将表物理放置在多个磁盘驱动器上来拆分表的情况下获取分区.如果将某个表放置在一个物理驱动器上,将相关表放置在另一个驱动器上,则可以提高查询性能,因为当运行涉及表间连接的查询时,多个磁盘头同时读取数据.可以使用