今天遇到一个问题,使用游标时,在给游标填充值的时候,select  语句中带有 where查询条件,并且还有 in子句。

本来我是这样写的,试了很多次都不出结果,当然number in (304010,305013)是可以出结果的。

declare @Did varchar(10)
declare @zdcode varchar(50) set @zdcode='304010,305013'
declare cur_id cursor for select Number from dbo.IM_Metadata where number in (@zdcode)
open cur_id
fetch next from cur_id into @Did
while @@fetch_status=0
begin
print @Did
fetch next from cur_id into @Did
end
close cur_id
deallocate cur_id

后来一番折腾,求助了群里同志们

果然有了不错的解决方案

就是添加一个函数:

CREATE   FUNCTION [dbo].[f_split]
(
@c VARCHAR(MAX) ,
@split VARCHAR(50)
)
RETURNS @t TABLE ( col VARCHAR(50) )
AS
BEGIN
WHILE ( CHARINDEX(@split, @c) <> 0 )
BEGIN
INSERT @t( col )
VALUES ( SUBSTRING(@c, 1, CHARINDEX(@split, @c) - 1) )
SET @c = STUFF(@c, 1, CHARINDEX(@split, @c), '')
END
INSERT @t( col ) VALUES ( @c )
RETURN
END

然后使用时这样:

declare cur_id cursor for select Number from dbo.IM_Metadata where number in (select * from f_split(@zdcode , ',')) 

ok问题解决了。

最新文章

  1. Java 输出流中的flush方法
  2. iOS10字体
  3. Swift关于Any,AnyObject,AnyClass的区别与联系
  4. MySQL – 导出数据成csv
  5. HDU 1789 贪心经典
  6. 常用js效果:选项卡切换
  7. 你必须知道的 34 个简单实用的 Ubuntu 快捷键
  8. zeromq随笔
  9. jQ小图标上下滑动特效
  10. HTM5新手学习的一些日常总结,相互交流和相互学习。
  11. centos7 ssh免密码登录
  12. Java命令模式以及来自lambda的优化
  13. Hibernate学习(三)自动建表
  14. app控件唯一相对Xpath自动生成(增强版uiautomatorviewer)
  15. Android屏幕适配-android学习之旅(五十九)
  16. 【leetcode78】Single Number II
  17. python之PIL库(Image模块)
  18. win10优化
  19. ASPxGridView中Command列自定义按钮点击事件概要
  20. HOW TO ANSWER: Tell Me About Yourself

热门文章

  1. C++组合通信
  2. 从头认识java-15.2 Collection的经常用法(2)-注意点
  3. oc48--多个对象内存管理练习
  4. PCB C# 连接MongoDB 数据库
  5. Appium + python - online-install-apk
  6. Grafana+Zabbix+Prometheus 监控系统
  7. 【LuoguP2210 USACO】 Haywire
  8. HttpServletResponse对象,自己学习的心得
  9. 在PL/SQL中使用游标、动态sql和绑定变量的小例子
  10. 图片懒加载插件echo.js——改造