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

--select t1.id,t2.short_str from Table1 as t1 cross apply  Splits(t1.name,',') as t2
-- cross apply   为2005以上版本才有的函数

CREATE FUNCTION splits(@Long_str NVARCHAR(MAX),@split_str NVARCHAR())
RETURNS @tmp TABLE(
ID inT IDENTITY PRIMARY KEY,
short_str NVARCHAR(MAX)
)
AS
BEGIN
DECLARE @short_str NVARCHAR(MAX),@split_str_length int,@split_str_Position_Begin int
SET @split_str_length = LEN(@split_str)
SET @Long_str=REPLACE(REPLACE(@Long_str,CHAR(),''),CHAR(),'')
IF CHARINDEX(@split_str,@Long_str)=
SET @Long_str=STUFF(@Long_str,,@split_str_length,'')
IF CHARINDEX(@split_str,@Long_str)=
INSERT INTO @tmp SELECT @Long_str
ELSE
BEGIN
WHILE >
BEGIN
SET @split_str_Position_Begin = CHARINDEX(@split_str,@Long_str)
SET @short_str=LEFT(@Long_str,@split_str_Position_Begin-)
IF @short_str<>'' INSERT INTO @tmp SELECT @short_str
SET @Long_str=STUFF(@Long_str,,@split_str_Position_Begin+@split_str_length-,'')
SET @split_str_Position_Begin = CHARINDEX(@split_str,@Long_str)
IF @split_str_Position_Begin=
BEGIN
IF LTRIM(@Long_str)<>''
INSERT INTO @tmp SELECT @Long_str
BREAK
END
END
END
RETURN
END

sqlserver 自定义字符串分割函数.的更多相关文章

  1. SQL Server自定义字符串分割函数——Split

    我相信大部分人都碰到过,处理数据的时候,字段的值是以 ',' (逗号)分隔的形式,所以我也不能避免. 然后我才知道,sql 是没有类似于 C# 和 Javascript 这种分割字符串的方法.( Sp ...

  2. SQL Server 自定义字符串分割函数

    一.按指定符号分割字符串,返回分割后的元素个数,方法很简单,就是看字符串中存在多少个分隔符号,然后再加一,就是要求的结果(标量值函数)   create function Func_StrArrayL ...

  3. hive函数 -- split 字符串分割函数

    hive字符串分割函数 split(str, regex) - Splits str around occurances that match regexTime taken: 0.769 secon ...

  4. Split字符串分割函数

    非常非常常用的一个函数Split字符串分割函数. Dim myTest myTest = "aaa/bbb/ccc/ddd/eee/fff/ggg" Dim arrTest arr ...

  5. ASP.NET中常用的字符串分割函数

    asp.net字符串分割函数用法 先来看个简单的实例 但是其数组长度却是25,而不是3.下面这种方法是先将“[111cn.net]”替换成一个特殊字符,比如$,在根据这个字符执行Split 例如下面我 ...

  6. MSSQLSERVER数据库- 字符串分割函数返回类型表

    遇到这样一个问题,存储在数据库的数据是一串字符串如:1,2,3,4,5,6.想把这串字符串进行转变成一个表格,如下: 1 2 3 4 5 6 就是这样一个问题,有人同事,写了一个这样的封装函数,这样就 ...

  7. SQL点滴3—一个简单的字符串分割函数

    原文:SQL点滴3-一个简单的字符串分割函数 偶然在电脑里看到以前保存的这个函数,是将一个单独字符串切分成一组字符串,这里分隔符是英文逗号“,”  遇到其他情况只要稍加修改就好了 CREATE FUN ...

  8. Delphi 自带的字符串分割函数split

    下面介绍Delphi自带的字符串分割函数,根据你的需要来使用. 1.ExtractStrings function ExtractStrings(Separators, WhiteSpace: TSy ...

  9. JavaScript中字符串分割函数split用法实例

    这篇文章主要介绍了JavaScript中字符串分割函数split用法,实例分析了javascript中split函数操作字符串的技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了JavaSc ...

随机推荐

  1. 【CF】222 Div.1 B Preparing for the Contest

    这样类似的题目不少,很多都是一堆优化条件求最优解,这个题的策略就是二分+贪心.对时间二分, 对费用采用贪心. /* 377B */ #include <iostream> #include ...

  2. Exception Handling Statements (C# Reference)

    Exception Handling Statements (C# Reference) C# provides built-in support for handling anomalous sit ...

  3. BI名词解释

    BI名词解释     浏览数Page Views: 网页(含文件及动态网页)被访客浏览的次数.Page View的计算范围包括了所有格式的网页,例如:.htm..html..asp..cfm. asa ...

  4. [主机/oracle/msyql] 监控脚本

    为了方便自己测试和监控,写了三个监控的脚本. 分别监控: 主机[cpu,mem,disk,fs,net] oracle mysql 脚本如下: hmon.py: monitor Linux os sy ...

  5. bzoj3238

    都LCP了很显然是要用到后缀数组的 显然前面的那个东西是可以直接算出来的 关键在于LCP的和怎么快速的计算 不难想到穷举height[i],然后判断这个height[i]可能成为多少对后缀的LCP 考 ...

  6. (转载)PureMVC 练习时的注意事项

    (转载)http://blog.sina.com.cn/s/blog_4d5a45ce01010axd.html 1.主文件里实例化facade. 把主要的UI都放进去2.第二步创建VO3.UserF ...

  7. Devexpress之popupMenu

    1.拖放一个BarManager控件barManager1和一个PopupMenu控件popupMenu1 2.设置popupMenu1的Manager属性为barManager1 3.拖放一个Tex ...

  8. 页面中引入带中文的JS文件乱码问题

    1. WebConfig: <globalization requestEncoding="gb2312" responseEncoding="gb2312&quo ...

  9. EF-CodeFirst-表关系-延迟/贪婪加载

    表关系建立: http://blog.csdn.net/niewq/article/details/17232321 一对多: namespace LckLib.EF.V6.Models { publ ...

  10. OpenCL 第10课:kernel,work_item和workgroup

    转载自:http://www.cmnsoft.com/wordpress/?p=1429 前几节我们一起学习了几个用OPENCL完成任务的简单例子,从这节起我们将更详细的对OPENCL进行一些“理论” ...