SQL常用代码收集
2014-03-27 21:19
323 查看
1、存储过程中,使用in查询时的参数处理方式
使用情形描述:传入存储过程的参数为一个字符串@IDs,以固定分隔符连接
新建字符串分割函数,然后将分割结果传入存储过程:
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 …………
)
使用情形描述:传入存储过程的参数为一个字符串@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 …………
)
相关文章推荐
- SQL常用代码收集..
- [网络收集]网页常用js代码片段收集
- ASP.NET程序中常用的三十三种代码(收集)
- 日常收集常用SQL查询语句大全
- Oracle数据库维护常用的SQL代码示例
- 常用代码收集
- sql代码收集
- MySQL常用SQL收集
- 收集java的常用方法代码-MD5和一个可逆加密算法相接合的加密和解密程序
- VBS脚本常用经典代码收集
- 常用经典SQL语句集合(收集)
- 常用SQL性能统计代码
- ASP.net和C#常用代码收集(不断添加ing)
- JQuery常用代码片段收集
- 常用SQL语句收集
- oracle常用SQL收集
- [网络收集]javascript常用代码汇总
- Oracle中SQLPLUS 常用指令收集与技巧
- (转) Unity3D常用代码收集总结
- Android开发人员不得不收集的代码(常用的工具类)