SQL 存储过程 传入数组参数
今天在做统计数据的时候,传入数组导致数据不显示。解决方式和大家分享一下:
--参数@CompanyName='北京,天津,上海'
DECLARE @PointerPrev int
DECLARE @PointerCurr int
DECLARE @TName nvarchar(100)
Set @PointerPrev=1
while (@PointerPrev < LEN(@CompanyName))
Begin
Set @PointerCurr=CharIndex(',',@CompanyName,@PointerPrev)
if(@PointerCurr>0)
Begin
set @TName=SUBSTRING(@CompanyName,@PointerPrev,@PointerCurr-@PointerPrev)
--我们可以在这里直接进行删除或修改
DELETE FROM TestA WHERE Name=@TName
--如果作为查询条件,我需要创建一个临时表,将数据插入进去
--insert into #CnameTable (Name) VALUES (@TName)
--insert into #CnameTable (Name) SELECT Name FROM TestName where Name like '%'+@TName+'%'
--这里的TestName 表中数剧量大时会降低查询速度,建议大家用其他方式处理,例如指针、重新拼接字符串等
SET @PointerPrev = @PointerCurr+1
End
else
Break
End
--因为最后一个后面没有逗号,所以在循环中跳出,需另外再删除
set @TName=SUBSTRING(@CompanyName,@PointerPrev,LEN(@CompanyName)-@PointerPrev+1)
DELETE FROM TestA WHERE Name=@TName
SQL 存储过程 传入数组参数的更多相关文章
- SQL Server存储过程 对数组参数的循环处理
方法一 分割 例:通过SQL Server存储过程传送数组参数删除多条记录 eg. ID 值为'1,2,3' 以下存储过程就是删除表中id号为1,2,3的记录: CREATE PROCEDURE De ...
- mybatis mapper文件sql语句传入hashmap参数
1.怎样在mybatis mapper文件sql语句传入hashmap参数? 答:直接这样写map就可以 <select id="selectTeacher" paramet ...
- SqlServer存储过程传入Table参数
今天是周日,刚好有空闲时间整理一下这些天工作业务中遇到的问题. 有时候我们有这样一个需求,就是在后台中传过来一个IList<类>的泛型集合数据,该集合是某个类的实例集合体,然后将该集合中的 ...
- PROCEDURE存储过程传入表参数
) ,itemNum ) ,itemQty )) ---2.创建一个存储过程以表值参数作为输入 alter proc usp_TestProcWithTable @tb LocationTa ...
- Python MySQLdb中执行SQL语句传入的参数应该要加上引号如果该字段是str类型的
如下图: username在表中是字符串类型的,所以传入的参数要加上引号
- clob字段的值插入和查询N种方法【包括java调用存储过程传入clob参数】
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import jav ...
- sql存储过程传入ID集合,和临时表的使用
方式1: Declare @SQL NVarChar(max) set @SQL='select *from Loanee as a ApplicationID in ('+@Application ...
- SQL存储过程传入字段名查询.
根据字段名和对应的值查询. (正确代码):目前发现,需要"分组,排序"等才能解决,如"order by","group by"等. SQL代 ...
- php通过存储过程传入汉字参数并写入数据库
写入数据库,汉字为???样式的乱码,后根据网上介绍的方法,参数前加N,数据库汉字内容变成空白. 解决方法,在PHP中先转为base64,再在mysql中base64解码,前提先保证mysql中有bas ...
随机推荐
- java注解处理
1.自定义注解类型 package com.yc.annotation; import java.lang.annotation.ElementType; import java.lang.ann ...
- web 开发入门
一 :进入Web JAVASE:标准 - standard JAVA 桌面程序 GUI SOCKET JAVAEE:企业-浏览器控制 WEB 二:软件结构: c/s :clie ...
- C#后台调用公网接口(GET, POST)
//get方法调用接口获取json文件内容 public void GetFunction() { string service ...
- iOS 版本号大小比较
NSString *num1 = @"5.2.0"; NSString *num2 = @"5.3.0"; if ([num1 compare:num2 ...
- python map()
map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回. 举例说明,比如我们有一个函数f(x)=x%2,要把这个函数作用在一个li ...
- DDD建模案例----“视频课程”场景
接触领域驱动设计DDD有一年多的时间了,中间看过不少书,参与过一些讨论(ENode QQ群).目前对DDD的认知还停留在理论阶段,所以对领域建模非常感兴趣,这里说的建模是指以DDD的思想为指导再加上D ...
- 单调队列 && 斜率优化dp 专题
首先得讲一下单调队列,顾名思义,单调队列就是队列中的每个元素具有单调性,如果是单调递增队列,那么每个元素都是单调递增的,反正,亦然. 那么如何对单调队列进行操作呢? 是这样的:对于单调队列而言,队首和 ...
- windbg-.process切换进程(内核)
.process .process 命令指定要用作进程上下文的进程(Set Process Context) .process显示当前进程的EPROCESS,这里显示当前进程为test.exe kd& ...
- Javascript-常用字符串数组操作
字符串的操作在编写Js的过程中是不可避免的 因为它太多的API 还有相似的API让我们很头痛 为了避免以后遇到模拟两可的问题 还是做个笔记比较好 把常用的字符串操作记录下来成笔记 方便以后查找 No1 ...
- 2016 ACM/ICPC Asia Regional Dalian Online 1010 Weak Pair dfs序+分块
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submissio ...