SQL SERVER 查询语句学习:CHARINDEX

场景介绍

   项目A需要一个批量删除的功能,之前我一直用SqlTransaction去处理,今天同事告诉我可以用CHARINDEX函数去解决问题,因此我今天就研究了一下。

SQL语句
 1 ---定义要删除的数据的ID的字符串集合的变量
 2 declare @deleteId nvarchar(50)
 3 ---给变量赋值,要删除的数据的id集合
 4 set @deleteId=,7,10,4,5,6,
 5 
 6 delete from urms.dbo.tbBug 
 7 ---比对数据Id是否符合条件,也就是如果CHARINDEX(CONVERT(VARCHAR, (‘,‘ + CONVERT(VARCHAR,Id) + ‘,‘)), @deleteId)的结果大于0 
 8 ---表示id存在@deleteId中,符合删除条件
 9 where CHARINDEX(CONVERT(VARCHAR, (, + CONVERT(VARCHAR,Id) + ,)), @deleteId) > 0
10 go
SQL语句

 

MSDN资料:http://msdn.microsoft.com/zh-cn/library/ms186323%28v=sql.105%29.aspx 

 CHARINDEX函数常常用来在一段字符中搜索字符或者字符串。

 SQL语句释义:

   1、首先定义一个字符串变量,用来存储需要删除数据的Id

   2、再用CHARINDEX(CONVERT(VARCHAR, (‘,‘ + CONVERT(VARCHAR,Id) + ‘,‘)), @deleteId)配对所要删除的数据是否属于该@deleteId变量

   3、如果结果大于0,也就是CONVERT(VARCHAR, (‘,‘ + CONVERT(VARCHAR,Id)+ ‘,‘)这个ID存在于@deleteId中,也就是“CHARINDEX(CONVERT(VARCHAR, (‘,‘ + CONVERT(VARCHAR,Id) + ‘,‘)), @deleteId) > 0”,就会删除该id的记录
结束语

  为了记录下今天学到的新的东西。加油!

SQL SERVER 查询语句学习:CHARINDEX,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。