SQL Split
最初是根据数据ID批量删除数据,因为不知道到底是要删除多少条,而T-sql里也没有像C#中params这样方便的东西,所以想到字符串分割,但是发现T-sql中也没有提供字符串分割的函数,所以自己搜索了下,然后写出如下的内容。
Create function [dbo].[Split]
(
@SplitString nvarchar(max), --要分割的字符串
@Separator nvarchar(10) --分隔符号
)
returns @SplitStringsTable Table --因为不知道返回多少数据,所以返回表
(
[value] nvarchar(max)
)
as
begin
DECLARE @CurrentIndex int; --
DECLARE @NextIndex int; --
DECLARE @ReturnText nvarchar(max); --要返回的字符
SELECT @CurrentIndex=1;
WHILE(@CurrentIndex<=len(@SplitString)) --循环查找
BEGIN
SELECT @NextIndex=charindex(@Separator,@SplitString,@CurrentIndex); --从@CurrentIndex开始寻找分隔字符在要分割的字符串中首次出现的位置
IF(@NextIndex=0 OR @NextIndex IS NULL) --如果首次出现的位置不为0也不会null
SELECT @NextIndex=len(@SplitString)+1; --重新给@NextIndex赋值
SELECT @ReturnText=substring(@SplitString,@CurrentIndex,@NextIndex-@CurrentIndex); --将字符串分割出来
INSERT INTO @SplitStringsTable([value]) VALUES(@ReturnText); --将字符串插入表中
SELECT @CurrentIndex=@NextIndex+1;
END return;
end
SQL Split的更多相关文章
- oracle pl/sql split函数
在软件开发过程中程序员经常会遇到字符串的拼接和拆分工作. 以java开发为例: 前台传入字符串拼接形式的一个JSON数据,如:"1001,1002,1003",这可能代表了一组序号 ...
- 自定义 sql Split函数 / 自定义mp_helptext查看存储
1. 分割函数: --Split 表函数将一个字符串按指定分隔符进行分割,返回一个表. create function split( ),--待分割字符串 )--分割符 ))) as begin ) ...
- hive sql split 分隔符
Hive字符串分割函数 split(str, regex) - Splits str around occurances that match regexTime taken: 0.769 secon ...
- SQL Split函数,将一串字符串返回成table
写法一: CREATE FUNCTION [dbo].[Split] ( @str VARCHAR(MAX), --传进来的字符串 ) --分割符 ) RETURNS @t TABLE --定义一个虚 ...
- sql split函数
--DROP FUNCTION F_SQLSERVER_SPLIT GO CREATE FUNCTION F_SQLSERVER_SPLIT(@Long_str varchar(8000),@spli ...
- C#参数化SQL查询
//写一个存储过程 ALTER PROCEDURE dbo.Infosearch ( @bmid smallint = null, @xm varchar()=null, @xb varchar()= ...
- (转)sql中 in 、not in 、exists、not exists 用法和差别
exists (sql 返回结果集为真) not exists (sql 不返回结果集为真) 如下: 表A ID NAME 1 A1 2 A2 3 A3 表B ID AI ...
- 挖一挖不常用到而又很实用的重载-Split
Split这个基本上所有的程序开发人员都用到,一般使用单字符和长字符串拆分字符串的较多,其实还有一个重载非常好用,那就是多种组合字符来进行拆分. 例如: "aaaaaaaaaa{@}bbbb ...
- C# Split 根据组合字符进行拆分数组用法
C# Split 根据组合字符进行拆分数组用法,如下代码: string sql = "aaaaaaaaaa{@}bbbbbbbbbb{@}ccccccc#cccccc"; //1 ...
随机推荐
- SQL Server 显示执行一条语句的执行时间
set statistics time on执行语句set statistics time off
- [vivado系列]Vivado软件的下载
时间:2016.10.27 ------------------ 前言:我们知道vivado软件是用于xilinx的7系列及以上器件的FPGA开发工具. 随着版本的不断更新,也变得越来越庞大.臃肿! ...
- C++使用protobuf传输中间包含\0的字节数组
The C++ implementation of protocol buffers returns the byte and string types as std::string. This st ...
- sql while 遍历表
declare @n int declare @rowcount int ) create table #temp ( id ,), employeeName ) ) insert into #tem ...
- eclipse查看class文件的源码
eclipse查看class文件的源码: 1.网上下载jadClipse的jar包和执行文件jad.exe和 net.sf.jadclipse_3.3.0.jar. 2.把上面下载的jar包放在ecp ...
- angular 调试 js (分 karms protractor / test e2e unit )
首页订阅 Protractor端到端的AngularJS测试框架教程 2014年01月18日 分类:教程, JavaScript, AngularJS Protractor是一个建立在WebDrive ...
- .net core 安装失败 的问题彻底解决
解决方法: 已经整理好包: https://pan.baidu.com/s/1dFuU80p 下载解压运行: DotNetCore.1.0.1-VS2015Tools.Preview2.0.2.e ...
- 读《UNIX编程艺术》一感
我记得早在2006年的时候就开始频繁使用awk做文本处理方面的工作,07年的时候周围有人用perl,我还感到很不解,觉得写得很复杂,没有awk one liner 那么方便和神奇.一直在了解awk的具 ...
- javascript按中文首字母排序
resultValue=[ '武汉' , '北京' , '上海' , '天津' ] ; resultValue= resultValue.sort( function compareFunction( ...
- ZT 螨虫的话就不要跟狗多接触,狗的寄生虫很多,还有草地,
病情分析:过敏是治不好的,只能做到避免接触.指导意见:螨虫的话就不要跟狗多接触,狗的寄生虫很多,还有草地,尤其是狗经常去的地方,草地就是螨虫的传播介质.你是过敏性体质除了被免 过敏性源外,还要增强体质 ...