(SQL)比较一个集合是否在另一个集合里存在的方法

简介:

DECLARE @c INT
DECLARE @c2 INT
SELECT  @c = COUNT(1)
FROM    dbo.SplitToTable('1|2|3|4', '|') 
SELECT @c2=COUNT(1)
FROM    dbo.SplitToTable('1|2|3|4', '|') a
        INNER JOIN dbo.SplitToTable('1|2|3|', '|') b ON a.value = b.value
IF @c = @c2 
         SELECT  'ok'
  ELSE
SELECT 'no'

 

SplitToTable这个函数如下:

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER FUNCTION [dbo].[SplitToTable]
    (
      @SplitString NVARCHAR(MAX) ,
      @Separator NVARCHAR(10) = ' '
    )
RETURNS @SplitStringsTable TABLE
    (
      [id] INT IDENTITY(1, 1) ,
      [value] NVARCHAR(MAX)
    )
AS 
        BEGIN
            DECLARE @CurrentIndex INT ;
            DECLARE @NextIndex INT ;
            DECLARE @ReturnText NVARCHAR(MAX) ;
            SELECT  @CurrentIndex = 1 ;
            WHILE ( @CurrentIndex <= LEN(@SplitString) ) 
                BEGIN
                    SELECT  @NextIndex = CHARINDEX(@Separator, @SplitString,
                                                   @CurrentIndex) ;
                    IF ( @NextIndex = 0
                         OR @NextIndex IS NULL
                       ) 
                        SELECT  @NextIndex = LEN(@SplitString) + 1 ;
                    SELECT  @ReturnText = SUBSTRING(@SplitString,
                                                    @CurrentIndex,
                                                    @NextIndex - @CurrentIndex) ;
                    INSERT  INTO @SplitStringsTable
                            ( [value] )
                    VALUES  ( @ReturnText ) ;
                    SELECT  @CurrentIndex = @NextIndex + 1 ;
                END
            RETURN ;
        END

本文转自博客园张占岭(仓储大叔)的博客,原文链接:(SQL)比较一个集合是否在另一个集合里存在的方法,如需转载请自行联系原博主。

目录
相关文章
|
1月前
|
SQL 关系型数据库 MySQL
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
99 1
|
29天前
|
SQL 存储 BI
sql server 2012远程链接的方法及步骤
sql server 2012远程链接的方法及步骤
17 1
|
1天前
|
SQL 分布式计算 资源调度
一文解析 ODPS SQL 任务优化方法原理
本文重点尝试从ODPS SQL的逻辑执行计划和Logview中的执行计划出发,分析日常数据研发过程中各种优化方法背后的原理,覆盖了部分调优方法的分析,从知道怎么优化,到为什么这样优化,以及还能怎样优化。
|
29天前
|
SQL 存储 Kubernetes
Seata常见问题之mybatisplus的批量插入方法报SQL错误如何解决
Seata 是一个开源的分布式事务解决方案,旨在提供高效且简单的事务协调机制,以解决微服务架构下跨服务调用(分布式场景)的一致性问题。以下是Seata常见问题的一个合集
25 0
|
1月前
|
SQL 存储 关系型数据库
MySQL 常用30种SQL查询语句优化方法
MySQL 常用30种SQL查询语句优化方法
73 0
|
2月前
|
算法 关系型数据库 MySQL
浅谈postgre-sql uuid生成方法的细节
浅谈postgre-sql uuid生成方法的细节
24 0
|
3月前
|
SQL XML Java
关于mybatis-plus写自定义方法(自定义sql)
关于mybatis-plus写自定义方法(自定义sql)
72 1
|
3月前
|
SQL 关系型数据库 MySQL
MySQL优化:12种提升SQL执行效率的有效方法
在数据库管理和优化的世界里,MySQL作为一个流行的关系型数据库管理系统,其性能优化是任何数据密集型应用成功的关键。优化MySQL数据库不仅可以显著提高SQL查询的效率,还能确保数据的稳定性和可靠性。
174 0
|
4月前
|
SQL 关系型数据库 MySQL
【SQL编程】Greenplum 与 MySQL 数据库获取周几函数及函数结果保持一致的方法
【SQL编程】Greenplum 与 MySQL 数据库获取周几函数及函数结果保持一致的方法
37 0
|
4月前
|
SQL 开发框架 安全
SQL 日期处理和视图创建:常见数据类型、示例查询和防范 SQL 注入方法
在数据库操作中,处理日期是一个关键的方面。确保插入的日期格式与数据库中日期列的格式匹配至关重要。以下是一些常见的SQL日期数据类型和处理方法。
87 8

热门文章

最新文章