CREATE  FUNCTION [dbo].[fnQuerySplit]
(
@string VARCHAR(MAX) ,--待分割字符串
@separator VARCHAR(255)--分割符
)
RETURNS @array TABLE ( item VARCHAR(255) )
AS
BEGIN
DECLARE @begin INT ,
@end INT ,
@item VARCHAR(255);
SET @begin = 1;
SET @end = CHARINDEX(@separator, @string, @begin);
WHILE ( @end <> 0 )
BEGIN
SET @item = SUBSTRING(@string, @begin, @end - @begin);
INSERT INTO @array
( item )
VALUES ( @item );
SET @begin = @end + 1;
SET @end = CHARINDEX(@separator, @string, @begin);
END;
SET @item = SUBSTRING(@string, @begin, LEN(@string) + 1 - @begin);
IF ( LEN(@item) > 0 )
INSERT INTO @array
( item
)
VALUES ( SUBSTRING(@string, @begin, LEN(@string) + 1 - @begin)
);
RETURN;
END;
CREATE  FUNCTION [dbo].[Fun_String2Table]
(
@str NVARCHAR(MAX) ,
@split NVARCHAR(10)
)
RETURNS @table TABLE ( [item] NVARCHAR(MAX) )
AS
BEGIN
IF LEN(@split) = 0
BEGIN
SET @split = N',';
END; DECLARE @xml XML;
SET @xml = CONVERT(XML, '<x><![CDATA['
+ REPLACE(CONVERT(VARCHAR(MAX), @str), @split,
']]></x><x><![CDATA[') + ']]></x>'); INSERT INTO @table
SELECT item
FROM ( SELECT c.value('text()[1]', 'nvarchar(4000)') [item]
FROM @xml.nodes('/x') t ( c )
) t
WHERE item IS NOT NULL; RETURN;
END;
CREATE FUNCTION [dbo].[f_split]
(
@SourceSql NVARCHAR(MAX) ,
@StrSeprate NVARCHAR(10)
)
RETURNS @temp TABLE ( value NVARCHAR(100) )
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;
fnQuerySplit:


Fun_String2Table:

f_split:

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

Fun_String2Table 是最快的
												

最新文章

  1. HTML5入门(---------------HTML——基本骨架--------------)
  2. Appium 截屏截图操作
  3. openfire二次开发eclipse环境搭建
  4. [原创] Legato 8.1 oracle full backup skip 奇怪的问题处理过程 -- 非调度日期手工运行调度也不成功(skip)
  5. JavaScript基础总结三部曲之一
  6. css初始化代码方案
  7. 【行为型】Chain of responsibility模式
  8. Markdown 代码测试!
  9. GMA Round 1 新程序
  10. 使用Axure做验证码之校验验证码(二)
  11. 1.23 codeforces div3 C.Nice Garland
  12. c# 十进制转二、八、十六进制
  13. &lt;算法&gt;&lt;Union Find并查集&gt;
  14. Linux 基本概念 &amp; 命令
  15. 第一篇:初识ASP.NET控件开发_第一节:控件类及其继承关系
  16. linux thtree level page tables
  17. Windows 8的语音识别
  18. Oracle中的job的定时任务
  19. Mac下的裁剪快捷键
  20. UVA 11440 Help Tomisu

热门文章

  1. git的压缩原理;git的pack文件;git gc操作原理;Resolving deltas: 100% (2695/2695), done.做了什么
  2. redis 启动配置文件加载报错 service redis does not support chkconfig
  3. 移动架构-json解析框架
  4. extentreports报告插件与testng集成
  5. String字符串相加的原理
  6. logback日志输出至数据库
  7. Java基础---Java变量
  8. 数值类型与std::string的相互转换
  9. WUST 设计模式 实验一 单例模式的应用
  10. ubuntu 快捷方式添加 applications添加