sql语句,判断两个字段内容是否一致_sql 字符串匹配

sql语句,判断两个字段内容是否一致_sql 字符串匹配
1、创建UDF函数 假定有两个均以,作为分隔符字符串序列@m和@n。判断@m和@n是否有交集,我们可以创建如下的函数来实现,返回0为无交集,返回1为有交集。…

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

1、创建UDF函数

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

/****** Object:  UserDefinedFunction [dbo].[Func_IsInner]    Script Date: 2021/02/23 10:47:05 ******/
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 NUMBER<LEN(@x)
		AND SUBSTRING(‘,‘+@x,NUMBER,1)=‘,‘
		AND CHARINDEX(SUBSTRING(@x,NUMBER-1,CHARINDEX(‘,‘,@x+‘,‘,NUMBER)-NUMBER + 2),‘,‘+@y)>0)
		 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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/6514.html

(0)
上一篇 2023-04-08 13:30
下一篇 2023-04-08

相关推荐

  • 2020 年 3 月 5 日凌晨,码云主数据库切换问题记录[通俗易懂]

    2020 年 3 月 5 日凌晨,码云主数据库切换问题记录[通俗易懂]2020 年 3 月 5 日,农历二月十二,惊蛰,宜搬家、安机械。由于主数据库磁盘容量告急,我们决定将主数据库迁移至新的物理设备。上一次迁移是在 2018 年,我们从 SAS 磁盘迁移至 SSD 磁…

    2023-02-03
    158
  • 用Python打造计时器

    用Python打造计时器计时器可以用于各种场景,例如做饭、运动、工作等。在这篇文章中,我们将介绍如何用Python编写一个计时器,并通过该计时器练习Python的基本语法。

    2024-04-26
    78
  • Sql Server数据库常用Transact-SQL脚本

    Sql Server数据库常用Transact-SQL脚本数据库 1、创建数据库 2、查看数据库 3、删除数据库 表 1、创建表 2、删除表 3、重命名表 列 1、添加列 2、删除列 3、重命名列 约束 1、主键 视图 1、创建视图 2、删除视图 存储过程

    2022-12-23
    144
  • startup启动不起来关于监听的问题

    startup启动不起来关于监听的问题问题描述:要在sqlplus中启动到startup状态,但是提示我没有监听,本来以为启动一下就可以,但是connecting to一直卡半天,stop都停止不了 1.发现监听有问题,前去更改 SQL&

    2022-12-22
    147
  • Mysql 一主一从「建议收藏」

    Mysql 一主一从「建议收藏」1. 主从原理 1.1 主从介绍 所谓 mysql 主从就是建立两个完全一样的数据库,其中一个为主要使用的数据库,另一个为次要的数据库,一般在企业中,存放比较重要的数据的数据库服务器需要配置主从,这样

    2023-06-01
    133
  • Python身份运算符:用于比较对象的身份

    Python身份运算符:用于比较对象的身份在Python中,使用身份运算符来比较两个对象的身份,常用的身份运算符包括“is”和“is not”。

    2024-03-29
    83
  • 使用Python关闭文件

    使用Python关闭文件无论是读取文件还是写入文件,使用完文件后,我们需要关闭文件,这能够确保文件不会因为被占用而无法进行其他操作,并且可以将缓冲区的内容从内存中写入磁盘,以保证文件操作的准确性。在Python中,关闭文件非常简单,本文将会详细介绍如何使用Python关闭文件以及关闭文件时要注意的事项。

    2024-05-30
    83
  • 解决Python中name ‘os’ is not defined错误

    解决Python中name ‘os’ is not defined错误在Python中,我们可以使用import语句来导入其他的Python模块,通过导入模块来调用其中定义的方法和变量,这也是Python强大的面向对象编程的基础之一。然而,当我们在程序中出现name ‘os’ is not defined错误时,就表示Python找不到名为os的模块或者变量。这种错误通常在导入模块时出现,而且它还说明了一个很重要的问题,就是Python的模块机制。

    2024-03-25
    77

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注