【SQLServer】 存储过程中,使用IN函数
在存储过程中使用IN函数,传入多个参数时,会有问题,三种解决方案:
添加函数:
create FUNCTION [dbo].[Split2]
(@RowData varchar(max),@SplitOn varchar(1)
)
RETURNS @RtnValue table
(Id int identity(1,1),Data varchar(4000)
)
AS
BEGIN Declare @Cnt intSet @Cnt = 1While (Charindex(@SplitOn,@RowData)>0)BeginInsert Into @RtnValue (data)Select Data = ltrim(rtrim(Substring(@RowData,1,Charindex(@SplitOn,@RowData)-1)))Set @RowData = Substring(@RowData,Charindex(@SplitOn,@RowData)+1,len(@RowData))Set @Cnt = @Cnt + 1EndInsert Into @RtnValue (data)Select Data = ltrim(rtrim(@RowData))Return
END
动态执行sql
EXEC('insert @TempTable select * from mytable where uid in ('+@ids+')')
使用charindex代替,但是此种方案,我没有测试成功,但是网上大部分人说,这个是可以的。所以这个有待商榷。
insert @TempTable select * from mytable where charindex(','+uid+',',''+@ids+'')>0
【SQLServer】 存储过程中,使用IN函数相关推荐
- SqlServer存储过程中循环的使用
1.while循环 格式示例如下: declare @i int set @i=1 while @i<30 begin insert into test (userid) values(@i) ...
- SQLServer存储过程中break、continue及return的使用
SQLServer编写存储过程中,我们会使用break.continue及return来中断程序的执行,这三者有什么区别,在此做以说明 break 退出 WHILE循环,执行循环体以后的语句,示例代码 ...
- 数据库(SQLServer)存储过程(PROCEDURE) 函数(function)
数据库(SQLServer)基本语法 1)存储过程2)函数模拟场景:某所高中学校的一套内部管理系统,设有学生管理,班级管理,教师管理,教室管理以及课程管理以下例子为教师管理. 表管理说明:①Teach ...
- 在SqlServer存储过程中使用Cursor(游标)操作记录
1. 为何使用游标: 使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式.用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的 ...
- SQLServer 2000中,存储过程和用户自定义函数具体的区别??
2019独角兽企业重金招聘Python工程师标准>>> 存储过程 存储过程可以使得对数据库的管理.以及显示关于数据库及其用户信息的工作容易得多.存储过程是 SQL 语句和可选控制流语 ...
- mysql存储过程into_MySQL存储过程中使用SELECT …INTO语句为变量赋值
使用SELECT -INTO语句为变量赋值 在MySQL存储过程中,可以使用SELECT -INTO语句对变量进行赋值,该语句在数据库中进行查询,并将得到的结果赋值给变量.SELECT -INTO语句 ...
- php 模板 自定义函数调用,thinkphp模板中使用自定义函数
注意:自定义函数要放在项目应用目录/common/common.php中. 这里是关键. 模板变量的函数调用格式:{$varname|function1|function2=arg1,arg2,### ...
- 布尔类型(boolean)在oracle存储过程中支持情况
文章目录 1.布尔类型在oracle存储过程中支持情况 (1)布尔类型在过程.函数.包中的支持情况 (2)布尔类型与其他类型的兼容情况 (3)布尔类型作为cast函数参数情况 (4)存储过程case- ...
- [转]SQLServer和Oracle,存储过程区别,常用函数对比
本文转自:http://www.cnblogs.com/neru/archive/2011/08/18/2144049.html 以前一直用sqlserver,只有很少的一点oracle的经验,现在要 ...
最新文章
- 富士通服务器 css灯亮,富士通空调指示灯故障含义-富士通空调指示灯代码
- pipreqs生成python项目依赖清单
- 循环语句until和while
- 201403-5 任务调度
- 【STC15库函数上手笔记】7、PCA与PWM
- Spring事务管理知识概述
- 文档管理 linux,Linux 文档管理
- UVA10196 Check The Check【模拟+回溯】
- cmd 获取ftp没反应_python笔记13-执行cmd指令
- [收藏]DIV中控制超级链接的方法
- SSM框架中的Mapper.xml文件中的增、删、改、查等操作
- 科技部再公布网络安全等10项国家重点研发计划
- 电气图纸制图规范及电气图纸的识读方法大全
- 华为笔记本软件商店_华为推出电脑版“应用市场”,免费无广告,再也不用担心垃圾软件...
- 信息安全技术--轮转机密码
- linux 同步北京时间_设置linux的时间为北京时间
- TypeScript查缺补漏
- MFC、WTL、WPF、wxWidgets、Qt、GTK 对比
- 我打算写一个《程序员的成长课》
- VS2019打包程序安装后无法运行
热门文章
- ROS2之机器人辅助医疗 (医护服务机器人)
- Makeblock召开2018新品发布会,正式启用中文品牌名童心制物
- 学历对编程很重要吗?
- 添加 中科大linux源,CentOS配置网易163 中科大 yum源
- 你负责貌美如花,我负责赚钱养家
- IT实现工作流程自动化的8个步骤
- 【LaTeX 教程】05. LaTeX 插入图片
- 5款牛逼的 API 工具
- 史上最全 Android 应用角标适配方法
- DRIVER_IRQL_NOT_LESS_OR_EQUAL 0X000000d1 srvnet.sys