SQL Server 完美SPLIT函数
-- SQL Server Split函数
-- Author:zc_0101
-- 说明:
-- 支持分割符多字节
-- 使用方法
-- Select * FROM DBO.F_SQLSERVER_SPLIT('1203401230105045','0')
-- select * from DBO.F_SQLSERVER_SPLIT('abc1234a12348991234','1234')
-- Select * from DBO.F_SQLSERVER_SPLIT('ABC',',')
CREATE FUNCTION F_SQLSERVER_SPLIT( @Long_str varchar ( 8000 ), @split_str varchar ( 100 ))
RETURNS @tmp TABLE (
ID inT IDENTITY PRIMARY KEY ,
short_str varchar ( 8000 )
)
AS
BEGIN
DECLARE @long_str_Tmp varchar ( 8000 ), @short_str varchar ( 8000 ), @split_str_length int
SET @split_str_length = LEN ( @split_str )
IF CHARINDEX ( @split_str , @Long_str ) = 1
SET @long_str_Tmp = SUBSTRING ( @Long_str , @split_str_length + 1 , LEN ( @Long_str ) - @split_str_length )
ELSE
SET @long_str_Tmp = @Long_str
IF CHARINDEX ( REVERSE ( @split_str ), REVERSE ( @long_str_Tmp )) > 1
SET @long_str_Tmp = @long_str_Tmp + @split_str
ELSE
SET @long_str_Tmp = @long_str_Tmp
IF CHARINDEX ( @split_str , @long_str_Tmp ) = 0
Insert INTO @tmp select @long_str_Tmp
ELSE
BEGIN
WHILE CHARINDEX ( @split_str , @long_str_Tmp ) > 0
BEGIN
SET @short_str = SUBSTRING ( @long_str_Tmp , 1 , CHARINDEX ( @split_str , @long_str_Tmp ) - 1 )
DECLARE @long_str_Tmp_LEN INT , @split_str_Position_END int
SET @long_str_Tmp_LEN = LEN ( @long_str_Tmp )
SET @split_str_Position_END = LEN ( @short_str ) + @split_str_length
SET @long_str_Tmp = REVERSE ( SUBSTRING ( REVERSE ( @long_str_Tmp ), 1 , @long_str_Tmp_LEN - @split_str_Position_END ))
IF @short_str <> '' Insert INTO @tmp select @short_str
END
END
RETURN
END
SQL Server 完美SPLIT函数的更多相关文章
- SQL Server用SPLIT函数分割字符串
declare @str varchar(100),@sql varchar(1000)set @str='1,2,3,4,5,6,7,8,9,10'set @sql='select Value= ...
- SQL Server 实现Split函数
添加一个表值函数. CREATE function [dbo].[fnSplit] ( ), --要分割的字符串 ) --字符串之间的分隔符 ) ,), TempName )) as begin de ...
- 深入浅出SQL Server 2008 分区函数和分区表
原文:深入浅出SQL Server 2008 分区函数和分区表 当我们数据量比较大的时候,我们需要将大型表拆分为多个较小的表,则只访问部门数据的查询就可以更快的运行,基本原理就是,因为要扫描的数据变的 ...
- SQL Server 2008 分区函数和分区表详解
[摘要]本文详细介绍SQL Server 2008 分区函数和分区表,包括查询某个分区.归档数据.添加分区.删除分区等内容. 当我们数据量比较大的时候,我们需要将大型表拆分为多个较小的表,则只访问部门 ...
- sql server中常用方法函数
SQL SERVER常用函数 1.DATEADD在向指定日期加上一段时间的基础上,返回新的 datetime 值. (1)语法: DATEADD ( datepart , number, date ) ...
- SQL Server 内置函数、临时对象、流程控制
SQL Server 内置函数 日期时间函数 --返回当前系统日期时间 select getdate() as [datetime],sysdatetime() as [datetime2] getd ...
- SQL Server:字符串函数
以下所有例子均Studnet表为例: 1. len():计算字符串长度 len()用来计算字符串的长度,每个中文汉字或英文字母都为一个长度 select sname, len(sname) from ...
- SQL Server 分隔字符串函数实现
在SQL Server中有时候也会遇到字符串进行分隔的需求.平时工作中常常遇到这样的需求,例如:人员数据表和人员爱好数据表,一条人员记录可以多多人员爱好记录,而往往人员和人员爱好在界面展示层要一并提交 ...
- SQL Server数据库ROW_NUMBER()函数使用详解
SQL Server数据库ROW_NUMBER()函数使用详解 摘自:http://database.51cto.com/art/201108/283399.htm SQL Server数据库ROW_ ...
随机推荐
- 对dpkg: error processing package xxx (--configure) 的处理
这个问题是在在安装Deepdive时候碰到的,具体来说在执行 sudo apt-get update碰到的sudo mv /var/lib/dpkg/info/ /var/lib/dpkg/info_ ...
- mysql中的unix_timestamp函数
偶然看到MySQL的一个函数 unix_timestamp(),不明就里,于是就试验了一番. unix_timestamp()函数的作用是返回一个确切的时间点的UNIX时间戳,这个Unix时间戳是一个 ...
- L2-012. 关于堆的判断
L2-012. 关于堆的判断 题目链接:https://www.patest.cn/contests/gplt/L2-012 终于ac了,简直要哭.题目还是很简单的,不过很多坑: 1.寻找x下标时,有 ...
- mysql 初始化修改密码问题(Mac系统)
今天公司大牛帮我搞定了mysql初始化密码问题,纪录一下: ~ ps aux | grep mysqlMetro 7149 0.0 0.0 2432772 564 s000 R+ 7:16下午 0:0 ...
- Python读取ini配置文件
db_config.ini [baseconf] host=127.0.0.1 port=3306 user=root password=root db_name=evaluting_sys [con ...
- HTTP Basic Authentication认证的各种语言 后台用的
访问需要HTTP Basic Authentication认证的资源的各种语言的实现 无聊想调用下嘀咕的api的时候,发现需要HTTP Basic Authentication,就看了下. 什么是HT ...
- 1-jQuery - AJAX load() 方法【基础篇】
jQuery load() 方法是简单但强大的 AJAX 方法:load() 方法从服务器加载数据,并把返回的数据放入被选元素中. 格式 $(selector).load(URL 源码 index.h ...
- springMVC+Java验证码完善注册功能
这篇文章简单的写了一个java验证码,为之前写过的springMVC注册功能加上验证码,验证码的作用就不多说了,防止机器人程序恶意注册什么的.. 其中User.java,加上了password和cod ...
- EasyuiAPI:基础
一.EasyLoader(简单加载) locale属性:值类型是string locales属性:值类型是object 二.Draggable(拖动) 1.通过标签创建: <div id=&qu ...
- flask部署 supervisor的使用
安装supervisor sudo apt-get install supervsor 配置 打开 /etc/supervisor/supervisor.conf 可以看到 同目录文件夹下的 co ...