两个字符串,以特定符号分隔(例如‘,’号),求交集

第一种情况:

declare @m varchar(100),@n varchar(100)
select
@m=',2,3,5,7,8,9,10,',
@n=',1,3,6,8,10,'
select
--count(1)
result=substring(@m,number,charindex(',',@m,number)-number)
from master..spt_values
where number<len(@m) and type='p' and number>1
and substring(','+@m,number,1)=','
and charindex(substring(@m,number-1,charindex(',',@m,number)-number+2),@n)>0

第二种情况:

declare @m varchar(100),@n varchar(100)
select
@m='2,3,5,7,8,9,10',
@n='1,3,6,8,10'
select
--COUNT(1)
result=substring(@m,number,charindex(',',@m+',',number)-number)
from master.dbo.spt_values
where type='p' and number>1 and number<len(@m)
and substring(','+@m,number,1)=','
and charindex(substring(@m,number-1,charindex(',',@m+',',number)-number + 2),','+@n)>0

以上两种情况,如果把“result=”那一行的sql语句换成count(1),则可以用来判断两个字符串是否有交集,count的结果值大于0就是有交集(count的数值就是交集的字符个数)

如果要把所有交集的字符都输出,那么就用“result=”那一行就可以了。

最新文章

  1. 洛谷P3407 散步[分组]
  2. linux上监控tomcat down掉后自动重启tomcat
  3. translate和replace的区别
  4. Struts2中获取servlet API的几种方式
  5. 开源HTML5 Canvas游戏Runtime发布
  6. 在Ubuntu上为Android系统编写Linux内核驱动程序(老罗学习笔记1)
  7. 【C#学习笔记】窗口隐藏、最小化、最大化、正常化
  8. Naive Bayes Theorem and Application - Theorem
  9. Haskell 几乎无疼痛入门指南
  10. Visual Studio 原生开发的10个调试技巧(二)
  11. Python:Module Install Issues
  12. CentOS7使用rpm包安装MySQL
  13. C语言打印不出百分号&#39;%&#39;(以解决)
  14. python解决四舍五入问题
  15. JavaScript基本操作之——九个 Console 命令
  16. ProtoBuf 常用序列化/反序列化API 转
  17. Nginx配置基于ip的虚拟主机
  18. Java RSA (SHA1withRSA)签名和验签
  19. [转]看懂Oracle执行计划
  20. 10-28质量监控ELK

热门文章

  1. Ubuntu 安装GNU Scientific library(GSL)
  2. python使用tkinter做界面之颜色
  3. 浅谈js数据类型识别方法
  4. Java--------------Windows下Redis的安装使用
  5. yum 认知及使用
  6. SpringXML方式配置bean的生命周期lifecycle
  7. 【SQL查询】分区查询Over
  8. 一段处理json的C#代码
  9. Android组件化开发实践
  10. 关于Fildder更改ip简单配置