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 ...
随机推荐
- eclipse的快捷键(写给eclipse新手)
Eclipse常用的快捷键 1.常用的快捷键 Alt+/:常用于补全单词.方法,以及内容辅助,可以省很多事情 Ctrl+1:用于全局,快速修正 Ctrl+D 删除整行 Ctrl+F 用于全局 , ...
- web初学之request,session与application
request (1)request的setAttribute()与getAttribute()方法一般都是成对出现,首先通过setAttribute()方法设置属性与属性值,然后通过getAttri ...
- ios AFNetworking 3.0 报错 : *** Assertion failure in -[AFHTTPRequestSerializer requestWithMethod:URLString:parameters:error:],
AFNetWorking[:] *** Assertion failure -- :::] *** Terminating app due to uncaught exception 'NSInter ...
- jahshaka 2.0 环境配置
经过断断续续的探索,终于在自己的win7电脑上编译并运行成功了jahshaka源代码. 环境配置: 首先,jahshaka 2.0提供了vs 2003 和vs 2005两个版本的工程文件,还需要qt3 ...
- 日常维护sql
修复mysqlcheck -u -p --repair pmdb prefix="/export/data/mysql/bin/mysql -u -p -e" domain=机房 ...
- LeetCode 214 Shortest Palindrome
214-Shortest Palindrome Given a string S, you are allowed to convert it to a palindrome by adding ch ...
- pooling的原理与Python实现
本文首先阐述pooling所对应的操作,然后分析pooling背后蕴含的一些道理,最后给出pooling的Python实现. 一.pooling所对应的操作 首先从整体上对pooling有一个直观的概 ...
- 转:union和union all的区别
Union因为要进行重复值扫描,所以效率低.如果合并没有刻意要删除重复行,那么就使用Union All 两个要联合的SQL语句 字段个数必须一样,而且字段类型要“相容”(一致): 如果我们需要将两个 ...
- TCP发消息续传文件
1.自定义固定协议头部.格式:([head][body][filestream]) /// <summary> /// 数据包头部 /// </summary> [Struct ...
- textFiled的placeHolder字体颜色
self.title=@"修改UITextField的placeholder字体颜色"; UITextField *textTF=[[UITextField alloc]initW ...