当给出两套时
s1 = {a,b,c,d} s2 = {b,c,d,a}
(IE)
TableA Item a b c d TableB Item b c d a
如何编写Sql查询以显示“ tableA和tableB中的元素相等”。[不使用SP或UDF]
输出
Elements in TableA and TableB contains identical sets
使用:
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
测试:
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