1. CREATE FUNCTION [dbo].[fnQuerySplit]
  2. (
  3. @string VARCHAR(MAX) ,--待分割字符串
  4. @separator VARCHAR(255)--分割符
  5. )
  6. RETURNS @array TABLE ( item VARCHAR(255) )
  7. AS
  8. BEGIN
  9. DECLARE @begin INT ,
  10. @end INT ,
  11. @item VARCHAR(255);
  12. SET @begin = 1;
  13. SET @end = CHARINDEX(@separator, @string, @begin);
  14. WHILE ( @end <> 0 )
  15. BEGIN
  16. SET @item = SUBSTRING(@string, @begin, @end - @begin);
  17. INSERT INTO @array
  18. ( item )
  19. VALUES ( @item );
  20. SET @begin = @end + 1;
  21. SET @end = CHARINDEX(@separator, @string, @begin);
  22. END;
  23. SET @item = SUBSTRING(@string, @begin, LEN(@string) + 1 - @begin);
  24. IF ( LEN(@item) > 0 )
  25. INSERT INTO @array
  26. ( item
  27. )
  28. VALUES ( SUBSTRING(@string, @begin, LEN(@string) + 1 - @begin)
  29. );
  30. RETURN;
  31. END;
  1. CREATE FUNCTION [dbo].[Fun_String2Table]
  2. (
  3. @str NVARCHAR(MAX) ,
  4. @split NVARCHAR(10)
  5. )
  6. RETURNS @table TABLE ( [item] NVARCHAR(MAX) )
  7. AS
  8. BEGIN
  9. IF LEN(@split) = 0
  10. BEGIN
  11. SET @split = N',';
  12. END;
  13.  
  14. DECLARE @xml XML;
  15. SET @xml = CONVERT(XML, '<x><![CDATA['
  16. + REPLACE(CONVERT(VARCHAR(MAX), @str), @split,
  17. ']]></x><x><![CDATA[') + ']]></x>');
  18.  
  19. INSERT INTO @table
  20. SELECT item
  21. FROM ( SELECT c.value('text()[1]', 'nvarchar(4000)') [item]
  22. FROM @xml.nodes('/x') t ( c )
  23. ) t
  24. WHERE item IS NOT NULL;
  25.  
  26. RETURN;
  27. END;
  1. CREATE FUNCTION [dbo].[f_split]
  2. (
  3. @SourceSql NVARCHAR(MAX) ,
  4. @StrSeprate NVARCHAR(10)
  5. )
  6. RETURNS @temp TABLE ( value NVARCHAR(100) )
  7. AS
  8. BEGIN
  9. DECLARE @i INT;
  10. SET @SourceSql = RTRIM(LTRIM(@SourceSql));
  11. SET @i = CHARINDEX(@StrSeprate, @SourceSql);
  12. WHILE @i >= 1
  13. BEGIN
  14. INSERT @temp
  15. VALUES ( LEFT(@SourceSql, @i - 1) );
  16. SET @SourceSql = SUBSTRING(@SourceSql, @i + 1,
  17. LEN(@SourceSql) - @i);
  18. SET @i = CHARINDEX(@StrSeprate, @SourceSql);
  19. END;
  20. IF @SourceSql <> '\'
  21. INSERT @temp
  22. VALUES ( @SourceSql );
  23. RETURN;
  24. END;
  1. fnQuerySplit

  1.  
  1. Fun_String2Table

  1. f_split

因为每次执行都是不一样的时间,所以综合下来,

  1. Fun_String2Table 是最快的
  1.  

sqlserver 拼接字符串分割的更多相关文章

  1. sqlserver 自定义字符串分割函数.

    --SQL Server Split函数 --Author: sq --说明:被分割后的字段为:short_str --支持分割符多字节 --使用方法 --Select * FROM splits(' ...

  2. sqlserver 拼接字符串

    SELECT CAST(USER_ID AS VARCHAR) + ',' FROM dbo.AUTH_USER FOR XML PATH('');

  3. SQLServer实现split分割字符串到列

    网上已有人实现sqlserver的split函数可将字符串分割成行,但是我们习惯了split返回数组或者列表,因此这里对其做一些改动,最终实现也许不尽如意,但是也能解决一些问题. 先贴上某大牛写的sp ...

  4. iOS开发-- 字符串分割、拼接

    ---------------------字符串分割实例---------------------NSString * ptr = @"I am a man"; //将字符串整体作 ...

  5. Obj-C数组以及字符串拼接与分割

    本文转载至 http://mobile.51cto.com/iphone-392148.htm Obj-C只是增加了一点“特殊语料”的C语言,所以可以用printf()代替NSLog().但我们建议使 ...

  6. java以逗号为分割符拼接字符串的技巧

    java以逗号为分割符拼接字符串的技巧   答: 不用那么多if判断,让人思维混乱,直接到最后使用deleteCharAt方法去除最后一个逗号即可. 实现代码如下所示: StringBuffer sb ...

  7. NSString用法,object-C数组以及字符串拼接和分割

    一.介绍使用NSString创建一个字符串的代码如下: #import <Foundation/Foundation.h>int main (int argc, char *argv[]) ...

  8. mysql 字符串分割 和 动态执行拼接sql

    本人以前主要用的是MSSQL,最近项目在使用MYSQL,自己是一个 典型的小白.今天就记录一下 一个mysql存储过程,里面需要分割字符串和 动态执行sql语句. 关于字符串 分割我开始使用 LOCA ...

  9. 工作中用到的oracle字符串分割整理

    oracle部分: 定义类型(用于字符串分割): create or replace TYPE "STR_SPLIT" IS TABLE OF VARCHAR2 (4000); 字 ...

随机推荐

  1. 【C# 开发技巧】如何防止程序多次运行

    一.引言 最近发现很多人在论坛中问到如何防止程序被多次运行的问题的,如: http://social.msdn.microsoft.com/Forums/zh-CN/6398fb10-ecc2-4c0 ...

  2. 【C#设计模式3】工厂方法模式

    一.引言 在简单工厂模式中讲到简单工厂模式的缺点,有一点是——简单工厂模式系统难以扩展,一旦添加新产品就不得不修改简单工厂方法,这样就会造成简单工厂的实现逻辑过于复杂,然而本专题介绍的工厂方法模式可以 ...

  3. 移动架构-UML

    UML(Unified Modeling Language),UML规范用来描述建模的概念有,类(对象的).对象.关联.职责.行为.接口.用例.包.顺序.协作,以及状态.这里对UML做一个简单介绍 前 ...

  4. JS获取URL参数中文乱码解决

    var param = window.location.search; var paramArray = parseParams(param); var selectV = decodeURI(par ...

  5. Xmemcached集群与SpringBoot整合

    创建SpringBoot项目xmemcached_springboot,添加开发需要的包名和类名,项目的目录结构如下: 添加XMemcached依赖: <dependency> <g ...

  6. Memcached的安装与常用命令

    一.概述 MSM:Memcached-Session-ManagerMemcached是一款高性能.分布式的内存对象缓存系统 二.安装Memcached 在安装Memcached之前,我们需要先安装上 ...

  7. nssm使用,安装服务、删除服务

    安装服务参考 nssm设置solr开机启动服务 删除服务 Windows删除服务 sc delete 服务名 nssm删除服务 nssm remove 服务名 nssm常用命令: nssm insta ...

  8. python 模块import(26)

    一.模块简介 python开发中,每一个.py文件都可以看作是一个模块,模块内部的函数或者方法可以被其他模块调用,至于函数或者方法是具体如何实现的,调用者不需要关心. 假如项目中既含有UI也有逻辑代码 ...

  9. java源码--Map

    Map接口 用于保存具有映射关系的数据结构,实现该接口的类可以通过键来获取对应的值.. 可以将给定一个键值对存储在Map接口的实现类实例中,如:map.put("key", &qu ...

  10. Python 【类与对象】

    类与对象 把类的个例就叫做实例 (instance),可理解为“实际的例子”类是某个特定的群体,实例是群体中某个具体的个体 Python中的对象等于类和实例的集合:即类可以看作是对象,实例也可以看作是 ...