首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL WHERE CHARINDEX

SQL WHERE CHARINDEX
EN

Stack Overflow用户
提问于 2012-07-30 06:32:34
回答 1查看 237关注 0票数 0

我的列ServicetTypeIDs包含以下数据。我使用下面的where子句来搜索值,假设如果我的参数@ServiceTypes = 1,9,它只会在两个参数都存在的情况下返回记录。我想返回包含1、9或本身包含1、9的记录的记录。我的where子句不正确。请帮帮忙

代码语言:javascript
复制
column
1
NULL
9
1
4,7
1,9

 WHERE
( @ServiceTypes is null or       
   charindex(','+SEP.ServiceTypeIDs+',',      
   ','+@ServiceTypes+',') > 0)))
EN

回答 1

Stack Overflow用户

发布于 2012-07-30 15:59:13

如果您需要for '1,9‘select ('1','9','1,9'),这里有一个简短的条件

代码语言:javascript
复制
where (@ServiceTypes is null) or (','+@ServiceTypes+',' like '%,'+ServiceTypeIds+',%')

但是对于'4,9‘,它只选择('9')。如果你想得到这个掩码的('4,7','1,9','9'),下面是条件

代码语言:javascript
复制
where (@ServiceTypes is null) 
      or 
      (','+ServiceTypeIds+',' like ',%'+SUBSTRING(@ServiceTypes,1,charindex(',',@ServiceTypes)-1)+',%')
      or
      (','+ServiceTypeIds+',' like ',%'+SUBSTRING(@ServiceTypes,charindex(',',@ServiceTypes)+1,1000)+',%') 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11713565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档