SQL判断两个带有分隔符的字符串是否重叠
SQL判断两个带有分隔符的字符串是否重叠
SQL Script: ALTER FUNCTION [dbo].[ufn_IsOverlap] ( @Value1 NVARCHAR(MAX), @Value2 NVARCHAR(MAX), @SPLIT VARCHAR(1)=',' --预设分隔符 ) RETURNS VARCHAR(10) --Y:有重叠,N:不重叠 AS BEGIN /************************************************ 程序说明:SQL判断两个带有分隔符的字符串是否重叠 --测试案例 print dbo.ufn_IsOverlap('','',',') print dbo.ufn_IsOverlap('','a',',') print dbo.ufn_IsOverlap('a','a,c',',') print dbo.ufn_IsOverlap('a,c','a',',') print dbo.ufn_IsOverlap('a','a',',') print dbo.ufn_IsOverlap('a,b,c','d,c,f',',') print dbo.ufn_IsOverlap('a,b,c,d,e,f,g','z,x,c',',') print dbo.ufn_IsOverlap(',d,','a,b,c,d,e,f,g',',') print dbo.ufn_IsOverlap('1,2,3,4,5,6,7','a,b,c,d,e,f,g',',') print CHARINDEX('1a','bab') ************************************************/ --两个参数有空值,返回N IF ISNULL(@Value1,'')='' OR ISNULL(@Value2,'')='' RETURN 'N' DECLARE @tmp NVARCHAR(2000) DECLARE @Return CHAR(1)--Y/N SELECT @Return='N' --基于算法优化,下面循环长度小的数据 IF LEN(@Value1)>LEN(@Value2) BEGIN DECLARE @Swap NVARCHAR(max) SELECT @Swap=@Value2 SELECT @Value2=@Value1 SELECT @Value1=@Swap END; --循环@Value1 WHILE(CHARINDEX(@SPLIT,@Value1)<>0) BEGIN SET @tmp='' SET @tmp=RTRIM(LTRIM(SUBSTRING(@Value1,1,CHARINDEX(@SPLIT,@Value1)-1))) --判断与@Value2是否重叠 IF CHARINDEX(','+@tmp+',',','+@Value2+',')<>0 BEGIN SELECT @Return='Y' BREAK; END; SET @Value1=STUFF(@Value1,1,CHARINDEX(@SPLIT,@Value1),'') END --处理无分隔符的数据(或者循环的最后一个数据) IF @Value1<>'' AND CHARINDEX(','+@Value1+',',','+@Value2+',')<>0 SELECT @Return='Y' RETURN @Return END; //来源:C/S框架网(www.csframework.com) QQ:23404761
参考文档:
SQL2008用户请注意修改连接字符串 C# 检查字符串,防SQL注入攻击 SQL分割字符串并返回表 SQL Server 判断是否存在数据库,表,列,视图 SQL连接字符串设置连接池 按指定字节长度截取字符串(每个汉字长度2字节) SQLServer连接字符串连接池详解,Pooling=True/False区别 SQL存储过程:删除基础资料前逻辑判断,检查是否有关联业务数据 多语言切换到英文版登陆报错:截断字符串或二进制数据 C#正则表达式判断url是否网络路径(http/ftp/https三种协议) C# GUID序列号转换生成唯一的16位短字符串或19位长数字序号 C# MD5字符串文本加密 C# 将GUID转换为最长16位的短字符串序号 C#判断对象类型为值类型、字符串、对象引用类型或泛型 C# 将数组、集合、可枚举类型转换成逗号分隔的字符串(String.Join)
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |