1、存储过程中,使用in查询时的参数处理方式

使用情形描述:传入存储过程的参数为一个字符串@IDs,以固定分隔符连接

新建字符串分割函数,然后将分割结果传入存储过程:

CREATE   FUNCTION [dbo].[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

SELECT * from table where id In (select * from Split(@ids , ','))

2、SQL2005及以上版本,使用with语法查询树形结构

WITH tempData(id,pid,name) as (

select id,pid,name from roleTable where roleID = 8

AND

UNION ALL

select id,pid,name from roleTable r1 INNER JOIN tempData r2 on r1.pid = r2.id

)

select id,pid,name from tempData where …………

)

最新文章

  1. curl及postman专题
  2. ACEXML解析XML文件&mdash;&mdash;我是如何学习并在短时间内掌握一个库的使用方法的
  3. discuz个人空间主题列表 图片模式实现方法
  4. 彻底删除mysql服务
  5. html_entity_decode() 函数
  6. CountDownLatch 和 CyclicBarrier 的运用及实现原理
  7. delphi算法
  8. 导入导出Mysql数据库、表结构、表数据
  9. Go 语言结构体
  10. Python 代码片段整理
  11. 事务(transaction )
  12. @RequestParam加不加的区别
  13. 初探ant-design(web版本)
  14. web应用1
  15. springboot外置的Servlet容器
  16. 20155307《网络对抗》MSF基础应用
  17. C++11 function
  18. JS中Ajax的同步和异步
  19. 洛谷 P2258 子矩阵
  20. Java Tomcat 注册为Windows系统服务

热门文章

  1. HDU 1796 容斥原理
  2. tomcat切割日志的shell脚本
  3. Unity3D研究院之获取摄像机的视口区域
  4. CVE-2014-6271 Bash漏洞利用工具
  5. openfire
  6. Jetty与Tomcat的区别 转
  7. MySQL性能优化总结(转)https://yq.aliyun.com/articles/24249
  8. remote_addr和x_forwarded_for
  9. 使用 Windows AIK 创建自定的客户端系统WIM文件
  10. PHP入门part1