最初是根据数据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的更多相关文章

  1. oracle pl/sql split函数

    在软件开发过程中程序员经常会遇到字符串的拼接和拆分工作. 以java开发为例: 前台传入字符串拼接形式的一个JSON数据,如:"1001,1002,1003",这可能代表了一组序号 ...

  2. 自定义 sql Split函数 / 自定义mp_helptext查看存储

    1. 分割函数: --Split 表函数将一个字符串按指定分隔符进行分割,返回一个表. create function split( ),--待分割字符串 )--分割符 ))) as begin ) ...

  3. hive sql split 分隔符

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

  4. SQL Split函数,将一串字符串返回成table

    写法一: CREATE FUNCTION [dbo].[Split] ( @str VARCHAR(MAX), --传进来的字符串 ) --分割符 ) RETURNS @t TABLE --定义一个虚 ...

  5. sql split函数

    --DROP FUNCTION F_SQLSERVER_SPLIT GO CREATE FUNCTION F_SQLSERVER_SPLIT(@Long_str varchar(8000),@spli ...

  6. C#参数化SQL查询

    //写一个存储过程 ALTER PROCEDURE dbo.Infosearch ( @bmid smallint = null, @xm varchar()=null, @xb varchar()= ...

  7. (转)sql中 in 、not in 、exists、not exists 用法和差别

    exists (sql 返回结果集为真)  not exists (sql 不返回结果集为真)  如下:  表A  ID NAME  1    A1  2    A2  3  A3 表B  ID AI ...

  8. 挖一挖不常用到而又很实用的重载-Split

    Split这个基本上所有的程序开发人员都用到,一般使用单字符和长字符串拆分字符串的较多,其实还有一个重载非常好用,那就是多种组合字符来进行拆分. 例如: "aaaaaaaaaa{@}bbbb ...

  9. C# Split 根据组合字符进行拆分数组用法

    C# Split 根据组合字符进行拆分数组用法,如下代码: string sql = "aaaaaaaaaa{@}bbbbbbbbbb{@}ccccccc#cccccc"; //1 ...

随机推荐

  1. Backbone入门讲解

    Backbone是一个实现了web前端mvc模式的js框架. 一种解决问题的通用方法,我们叫做模式. 设计模式:工厂模式,适配器模式,观察者模式等,推荐js设计模式这本书.设计模式是一种思想. 框架模 ...

  2. Ubuntu 安装 SublimeText 3

    1. 下载 $ cd ~/Downloads $ wget https://download.sublimetext.com/sublime-text_build-3083_i386.deb 2. 安 ...

  3. google垂直搜索结果

    佰年金融 所谓“垂直”很干净地分离出来,而不是在谷歌算作有机列表的结果,但该行已开始模糊.例如,现在许多视频结果似乎是直接整合为有机(万SERP的例子).我治疗的新的“有深度的文章”作为一个垂直的结果 ...

  4. What is “:-!!” in C code?

    stackoverflow上看到的这个问题,觉得挺有趣,顺手记下来. 楼主提问: I bumped into this strange macro code in /usr/include/linux ...

  5. MySQL root密码找回

    以MySQL多实例为例,演示找回MySQL root的密码 1.关闭mysql服务 [root@mysql ~]# mysqladmin -uroot -poldboy123 -S /data/330 ...

  6. Win7如何显示/隐藏Administrator账号

    为了保证安全,windows7的administrator账户默认在登录时是不显示的. 在登录页面显示administrator账户的方法: 1. 选择"开始"菜单->&qu ...

  7. 关于AFNetworking菊花转圈圈的问题

    刚开始接触AFN的时候,发现菊花老是不转,百度到大神的博客上,说AFN里面的API的网络加载菊花默认是关闭的(才发现默认情况下AFN的转圈圈的菊花是关闭的)需要手动打开才能够显示转圈圈,打开的方法是: ...

  8. Android版本4.0~7.0

    Android 4.0 Ice Cream Sandwich(冰激凌三明治):2011年10月19日发布 版本主要更新如下:全新的UI:全新的Chrome Lite浏览器:截图功能:更强大的图片编辑功 ...

  9. Mac上的欧路词典单词本迁移到有道词典 #node.js

    摘要 有道词典提供了柯林斯和朗文辞典,加上最近在背单词且Mac版的屏幕取词也够用了,为了云单词本的同步,决定抛弃Mac上的欧路词典.单词欧路上的单词本也存了一百多个单词.怎样迁移到有道呢? 关键词:n ...

  10. 《锋利的jQuery》(第2版)读书笔记4

    第9章 jQuery Mobile jQuery Mobile是用来填补jQuery在移动设备应用上的缺憾的一个新项目. 它基于jQuery框架并使用HTML5和CSS3这些新的技术,除了能提供很多基 ...