sql 查询条件为拼接字符串 不能使用IN 使用patindex查询结果集
题目: 求组织机构ID在('5dc8de20-9f2f-465e-afcc-f69abecaee50','63549b63-1e0d-4269-98f4-013869d7f211','f7316bf3-38e9-47d4-ab95-8c702b468a2e','61e381d1-c8fc-4276-97e0-3f1b6a0356f5') 中的所有机构。
错误写法:
select * from dd_Report where 1=1 and
OrganizationID in
('5dc8de20-9f2f-465e-afcc-f69abecaee50','63549b63-1e0d-4269-98f4-013869d7f211','f7316bf3-38e9-47d4-ab95-8c702b468a2e','61e381d1-c8fc-4276-97e0-3f1b6a0356f5')
and ReportType='1' and DeleteMark =' 1'
将无法查到(63549b63-1e0d-4269-98f4-013869d7f211,5dc8de20-9f2f-465e-afcc-f69abecaee50)这条记录

正确写法:
思路:求OrganizationID与('5dc8de20-9f2f-465e-afcc-f69abecaee50','63549b63-1e0d-4269-98f4-013869d7f211','f7316bf3-38e9-47d4-ab95-8c702b468a2e','61e381d1-c8fc-4276-97e0-3f1b6a0356f5') 的交集数量。
select *
from dd_Report
where 1=1 and ReportType='1' and DeleteMark =' 1' and
dbo.splitstring('''' + replace(OrganizationID,',',''',''') + '''',
'''5dc8de20-9f2f-465e-afcc-f69abecaee50'',''63549b63-1e0d-4269-98f4-013869d7f211'',''f7316bf3-38e9-47d4-ab95-8c702b468a2e'',''61e381d1-c8fc-4276-97e0-3f1b6a0356f5'''
) >0
创建函数
1 USE [CT_DD]
2 GO
3 /****** Object: UserDefinedFunction [dbo].[f_splitSTR] Script Date: 05/20/2016 11:35:44 ******/
4 SET ANSI_NULLS ON
5 GO
6 SET QUOTED_IDENTIFIER ON
7 GO
8 ALTER FUNCTION [dbo].[f_splitSTR](
9 @s varchar(max), --待分拆的字符串
10 @split varchar(10) --数据分隔符
11 )RETURNS @re TABLE(col varchar(100))
12 AS
13 BEGIN
14 DECLARE @splitlen int
15 SET @splitlen=LEN(@split+'a')-2
16 WHILE CHARINDEX(@split,@s)>0
17 BEGIN
18 INSERT @re VALUES(LEFT(@s,CHARINDEX(@split,@s)-1))
19 SET @s=STUFF(@s,1,CHARINDEX(@split,@s)+@splitlen,'')
20 END
21 INSERT @re VALUES(@s)
22 RETURN
23 END
1 USE [CT_DD]
2 GO
3 /****** Object: UserDefinedFunction [dbo].[splitstring] Script Date: 05/20/2016 11:38:43 ******/
4 SET ANSI_NULLS ON
5 GO
6 SET QUOTED_IDENTIFIER ON
7 GO
8 ALTER function [dbo].[splitstring]
9 (
10 @str1 varchar(max),
11 @str2 varchar(max)
12 )
13 returns int
14
15 begin
16 declare @num int;set @num=0;
17
18 select @num=COUNT(1) from f_splitSTR (@str1,',') temp where col in (select * from f_splitSTR (@str2,',') temp2)
19
20 return @num;
21
22 end
输出结果:

sql 查询条件为拼接字符串 不能使用IN 使用patindex查询结果集的更多相关文章
- sql server中单引号拼接字符串(书写错误会出现错误"浮点值 XXXX 超出了计算机表示范围(8 个字节)。“XX”附近有语法错误。")
" ' "(单引号)的运用:在sql server中,两个" ' "(单引号)在拼接字符串的情况下运用,就是表示拼接上了一个" ' "单引号 ...
- 我的一个PLSQL函数 先查询再插入数据库的函数 动态SQL拼接查询条件、通用游标、记录定义(封装部分查询字段并赋值给游标)、insert select 序列、常量【我】
先查询再插入数据库的函数 CREATE OR REPLACE FUNCTION F_REVENUE_SI(l_p_cd in Varchar2, l_c_cd in Varchar2, l_prod_ ...
- php查询mysql数据库 查询条件替中文字符串变量时无法查询
$temp2 ='十年';mysql_query("SET NAMES GBK"); $res = mysql_query("select songer_name fro ...
- SQL Server数据库存储过程中拼接字符串注意的问题
在SQL Server数据库中书写复杂的存储过程时,一般的做法是拼接字符串,最后使用EXEC sp_executesql '拼接的字符串' 查询出结果. 先看一段代码: -- ============ ...
- SQL Server-聚焦强制索引查询条件和Columnstore Index(九)
前言 本节我们再来穿插讲讲索引知识,后续再讲数据类型中的日期类型,简短的内容,深入的理解,Always to review the basics. 强制索引查询条件 前面我们也讲了一点强制索引查询的知 ...
- 字符串变量作mysql查询条件
原文:http://blog.csdn.net/qing_gee/article/details/41646503 当你的查询条件是一个字符串变量时,你该怎么办,比如字符串可能是“0001ME,000 ...
- SQL Server-聚焦强制索引查询条件和Columnstore Index
前言 本节我们再来穿插讲讲索引知识,后续再讲数据类型中的日期类型,简短的内容,深入的理解,Always to review the basics. 强制索引查询条件 前面我们也讲了一点强制索引查询的知 ...
- ibatis动态查询条件
ibatis的调试相对困难,出错的时候主要依据是log4生成的log文件和出错提示,这方面要能比较熟练的看懂. 下面这个配置基本上包含了最复杂的功能:分页\搜索\排序\缓存\传值Hash表\返回has ...
- [2014-12-30]如何动态构造Lambda表达式(动态构造Lambda查询条件表达式)
声明 本文对Lambda表达式的扩展,示例代码来源于网络. 场景描述 web开发查询功能的时候,如果查询条件比较多,就会遇到动态组合查询条件的情况.在手写sql的情况下,我们一般会根据传入的参数,针对 ...
随机推荐
- P5665 划分
Part 1 先来看一个错误的贪心做法:假设当前结尾的一段和为 \(a\),等待加入结尾的一段和为 \(b\),现在要处理新进来的数 \(c\). \(a\leq b\),将 \(a\) 算入答案,将 ...
- Java基础教程——Object类
Object类 Object类是Java所有类类型的父类(或者说祖先类更合适) <Thinking in Java(Java编程思想)>的第一章名字就叫"everything i ...
- JDBC【3】-- SPI技术使用以及在数据库连接中的使用
目录 1.SPI是什么? 2.如何使用SPI来提供自定义服务? 2.1 DBInterface定义接口 2.2 模拟Mysql实现驱动 2.3 模拟SqlServer实现驱动 2.4 模拟用户使用不同 ...
- Python中的静态属性、实例属性、静态方法、实例方法之间的区别
- day99:MoFang:Flask-JSONRPC提供RPC接口&在APP进行窗口页面操作(窗口-帧-帧组)
目录 1.服务端基于Flask-JSONRPC提供RPC接口 1.Flask-JSONRPC简介 2.安装Flask-JSONRPC模块 3.快速实现一个测试的RPC接口 4.移动端访问测试接口 2. ...
- LeetCode 029 Divide Two Integers
题目要求:Divide Two Integers Divide two integers without using multiplication, division and mod operator ...
- Spring Boot 集成多个 Kafka
一.配置文件 application.yml spring: kafka: one: bootstrap-servers: IP:PORT consumer: group-id: YOUR_GROUP ...
- 安装pillow报错处理
sudo python3 pip install pillow 报错:The headers or library files could not be found for jpeg,... 解决:安 ...
- 冰河开源了全网首个完全开源的分布式全局有序序列号(分布式ID)框架!!
写在前面 mykit-serial框架的设计参考了李艳鹏大佬开源的vesta框架,并彻底重构了vesta框架,借鉴了雪花算法(SnowFlake)的思想,并在此基础上进行了全面升级和优化.支持嵌入式( ...
- 转:为什么浏览器的user-agent字符串以'Mozilla'开头呢?
本文转自:https://blog.csdn.net/S_gy_Zetrov/article/details/79463093 感谢sgyzetrov翻译 如果熟悉元素审查的童鞋,很多都会发现requ ...