TSQL Comparing two Sets

后端 未结 6 2117
野的像风
野的像风 2021-01-18 03:58

When two sets are given

s1 ={ a,b,c,d} s2={b,c,d,a}

(i.e)

TableA

Item
a
b
c
d

TableB

Item
b
c
d
a

How to write Sql quer

6条回答
  •  温柔的废话
    2021-01-18 05:03

    Use:

    SELECT CASE 
             WHEN   COUNT(*) = (SELECT COUNT(*) FROM a) 
                AND COUNT(*) = (SELECT COUNT(*) FROM b) THEN 'Elements in TableA and TableB contains identical sets'
             ELSE 'TableA and TableB do NOT contain identical sets'
           END
      FROM (SELECT a.col
              FROM a
            INTERSECT
            SELECT b.col
              FROM b) x 
    

    Test with:

    WITH a AS (
      SELECT 'a' AS col
      UNION ALL
      SELECT 'b'
      UNION ALL
      SELECT 'c'
      UNION ALL
      SELECT 'd'),
         b AS (
      SELECT 'b' AS col
      UNION ALL
      SELECT 'c'
      UNION ALL
      SELECT 'd'
      UNION ALL
      SELECT 'a')
    SELECT CASE 
             WHEN   COUNT(*) = (SELECT COUNT(*) FROM a) 
                AND COUNT(*) = (SELECT COUNT(*) FROM b) THEN 'yes'
             ELSE 'no'
           END
      FROM (SELECT a.col
              FROM a
            INTERSECT
            SELECT b.col
              FROM b) x 
    

提交回复
热议问题