• 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的记录
    结束语

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

    漫漫人生,唯有激流勇进,不畏艰险,奋力拼搏,方能中流击水,抵达光明的彼岸
  • 相关阅读:
    第一章嵌入式系统基础1.5嵌入式系统性能评价
    第一章嵌入式系统基础1.4
    1.3嵌入式系统的硬件基础
    学习第二天
    经典的删除字符串中指定的字符
    字符串的两种表示
    股票数据定向爬虫
    淘宝商品比价定向爬虫
    中国大学排名定向爬虫
    python小练习 批量修改文件名
  • 原文地址:https://www.cnblogs.com/ganqiyin/p/3578701.html
Copyright © 2020-2023  润新知