背景:

1、使用存储过程

2、存储过程中有in

3、in括号里面的内容作为参数传递

解决方案:

1、直接拼接sql

可在存储过程中拼接字符串,然后执行此字符串,类似于js中的eval

PROCEDURE [dbo].[INSelect]@P_0 NVARCHAR(600)
ASDECLARE @A VARCHAR(6000)SET @A='SELECT * FROM testTb WHERE zip IN ('+@P_0+')' 

然后用系统存储过程sp_executesql执行@A即可!

2、定义方法将字符切割为集合

切割字符串方法

Create function  func_split_hongfei0416j (@SourceSql   varchar(8000),@StrSeprate   varchar(2))   returns   @temp   table(col   varchar(100))   as     begin   declare   @ch   as   varchar(100)   set   @SourceSql=@SourceSql+@StrSeprate     while(@SourceSql<>'')   begin   set   @ch=left(@SourceSql,charindex(@StrSeprate,@SourceSql,1)-1)   insert   @temp   values(@ch)   set   @SourceSql=stuff(@SourceSql,1,charindex(@StrSeprate,@SourceSql,1),'')   end   return   end

存储过程书写demo

CREATE PROC ps_spit_test
( @lettertype VARCHAR(100)
)
AS
BEGIN      select * from y_paper where lettertype in (select Col As lettertype
from dbo.func_split_hongfei0416j(@lettertype,','))
endexec ps_spit_test '118,148,163'

如果是简单的sql直接使用第一种方法即可,

复杂写的可以使用第二方法。

也可以使用临时表的方法,

不过依然需要先切割字符串。

转载于:https://www.cnblogs.com/xuhongfei/p/7413167.html

SQL中in参数在存储过程中传递及使用的方法相关推荐

  1. 获取http请求中的参数控制器给jsp传递数据的方式

    这里写自定义目录标题 获取http请求中的参数 直接参数名获取 通过对象的方式获取 通过Servlet API方式获取 当请求中的参数和方法中参数名不一致 直接在url中获取参数的方式 控制器给jsp ...

  2. java中方法的命名_Java方法中的参数太多,第5部分:方法命名

    java中方法的命名 在上一篇文章 (有关处理Java方法中过多参数的系列文章的 第4部分 )中,我将方法重载视为一种向客户提供需要较少参数的版本的方法或构造函数的方法. 我描述了该方法的一些缺点,并 ...

  3. java方法带参数返回值_Java方法中的参数太多,第6部分:方法返回

    java方法带参数返回值 在当前的系列文章中,我正在致力于减少调用Java方法和构造函数所需的参数数量,到目前为止,我一直专注于直接影响参数本身的方法( 自定义类型 , 参数对象 , 构建器模式 , ...

  4. Java方法中的参数太多,第5部分:方法命名

    在上一篇文章 (有关处理Java方法中过多参数的系列文章的 第4部分 )中,我将方法重载视为一种向客户提供需要较少参数的方法版本或构造函数的方法. 我描述了该方法的一些缺点,并建议从方法重载中摆脱出来 ...

  5. Java方法中的参数太多,第6部分:方法返回

    在当前的系列文章中,我正在致力于减少调用Java方法和构造函数所需的参数数量,到目前为止,我一直专注于直接影响参数本身的方法( 自定义类型 , 参数对象 , 构建器模式 , 方法重载和方法命名 ). ...

  6. scala中命名参数函数_Scala中带有命名参数的函数

    scala中命名参数函数 具有命名参数的函数 (Functions with named arguments ) A function is Scala can take multiple argum ...

  7. scala中命名参数函数_Scala中的命名参数和默认参数值

    scala中命名参数函数 In this post, we are going to discuss the following two important concepts in Scala abo ...

  8. python继承中的参数_python 继承中的super

    python继承中子类访问父类的方法(包括__init__)主要有两种方法,一种是调用父类的未绑定方法,另一种是使用super(仅仅对于新式类),看下面的两个例子: #coding:utf-8 cla ...

  9. 将网址url中的参数转化为JSON格式的两种方法

    在我们进入主题前,我先先看下获取网址URL的方法: window.location.href // 设置或获取整个URL为字符串 window.location.hash // 设置或获取href属性 ...

最新文章

  1. Mac OS X 系统自带的截图快捷键有哪些?
  2. BZOJ3262/Luogu3810 陌上花开 (三维偏序,CDQ)
  3. 【原创】分布式之大话CAP
  4. 30.275MHz 调频无线对讲机原理、制作与调试
  5. Linux文件操作实用笔记
  6. Java顺序IO性能
  7. HDU2020 绝对值排序【排序】
  8. 在android中如何显示维语
  9. 谷歌无法加载印象笔记剪辑插件
  10. 嵌入式软件设计(1)--概述
  11. python单例模式数据库连接池_Python单例模式的实现
  12. Python模块selenium实例:电影分类排名数据生成json,sqlite和excel(openpyxl)文件(二)
  13. 第二次去苹果店维修MacBook
  14. VUE-17 图片的获取,购物车商品数量的添加与减少,计算整个购物车商品的价格(循环)
  15. ファイルダウンロード
  16. ThinkPHP5.0+七牛云SDK文件上传
  17. mel表达式_表达式和 MEL 语法之间的区别
  18. VUE环境搭建和项目创建-win平台
  19. opencv+face_recognition+python实现换脸(face swap)操作(3)——基于普氏分析法(Procrustes Analysis)的代码实现
  20. SXMB_MONI传输记录报错:具有无效值 BE #SAP #PO #REST

热门文章

  1. 与Adobe Reader安装有关的报错处理
  2. iis应用池解决方案
  3. 《Supervised Descent Method and its Applications to Face Alignment》阅读笔记
  4. 问题 G: 编写函数:数组的排序 (Append Code)
  5. 将图片转换为base64_图片与base64相互转换
  6. 金蝶移动bos开发教程_求助临沂金蝶k3,kis,eas软件各版本优势
  7. echart 高度 不用 不撑满_装修干货:橱柜高度到底要多高才合适?
  8. CentOS 7 安装Docker
  9. 【Twitter】时序图神经网络
  10. YFI 创始人 Andre Cronje:有四个新产品待发布,但担心在推出后被分叉