文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

【SQL Server】判断两个字符串序列是否有交集

2017-01-18 16:49

关注


	【SQL Server】判断两个字符串序列是否有交集
[数据库教程]

1、创建UDF函数

假定有两个均以,作为分隔符字符串序列@m@n。判断@m@n是否有交集,我们可以创建如下的函数来实现,返回0为无交集,返回1为有交集。


IF OBJECT_ID(‘Func_IsInner‘) IS NOT NULL DROP FUNCTION Func_IsInner;

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION [dbo].[Func_IsInner]
( @m AS nvarchar(500) ,		--字符串m
  @n AS nvarchar(500) 		--字符串n
)
RETURNS bit
AS
BEGIN
	-- 判断两个‘,‘分隔的字符串是否有交集
	DECLARE @ret BIT, @x nvarchar(510), @y nvarchar(510);
	SET @x = ‘,‘+@m+‘,‘;
	SET @y=‘,‘+@n+‘,‘;
	IF ISNULL(@m, ‘‘)=‘‘ OR ISNULL(@n, ‘‘)=‘‘ 
		SET @ret = 0;
	IF EXISTS(
		SELECT
			result = substring(@x,number,charindex(‘,‘,@x+‘,‘,number)-number)
		FROM master.dbo.spt_values
		WHERE TYPE=‘p‘ AND NUMBER>1 AND NUMBER0)
		 SET @ret = 1;
	ELSE 
		SET @ret = 0;
	RETURN @ret;
END
GO

2、测试结果

根据几个测试case生成的SQL脚本:

SELECT ‘测试1 →‘, dbo.Func_IsInner(‘1,a‘, ‘1,s‘) AS ‘result‘;
SELECT ‘测试2 →‘, dbo.Func_IsInner(‘1,a‘, ‘s‘) AS ‘result‘;
SELECT ‘测试3 →‘, dbo.Func_IsInner(‘1,a‘, ‘m,n‘) AS ‘result‘;
SELECT ‘测试4 →‘, dbo.Func_IsInner(‘1,a‘, ‘‘) AS ‘result‘;
SELECT ‘测试5 →‘, dbo.Func_IsInner(‘1,a‘, NULL) AS ‘result‘;
SELECT ‘测试6 →‘, dbo.Func_IsInner(NULL, NULL) AS ‘result‘;

测试结果(output列等于0为无交集,1为有交集):

title output result
测试1 → 1 OK
测试2 → 0 OK
测试3 → 0 OK
测试4 → 0 OK
测试5 → 0 OK
测试6 → 0 OK

原文:https://www.cnblogs.com/itheo/p/14434995.html

作者:Theo·Chan
版权:本文版权归作者和博客园共有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任

【SQL Server】判断两个字符串序列是否有交集

原文地址:https://www.cnblogs.com/itheo/p/14434995.html

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯