两个表进行比较,表结构相同,我要出了一个字段,其他的字段数据进行比较,应该如何比较例:表A,B表A    字段A1,A2,A3,A4
表B对应字段A1,B2,B3,B4不比较A1字段,其他字段进行比较,如果有变化返回FALSE,否则返回TURE谢谢

解决方案 »

  1.   

    DECLARE
      L_I INT;
    BEGIN
      SELECT COUNT(1)
        INTO L_I
        FROM A, B
       WHERE A.A2 = B.B2
         AND A.A3 = B.B3
         AND A.A4 = B.B4
         AND ROWNUM = 1;
      IF L_I > 0 THEN
        DBMS_OUTPUT.PUT_LINE('TRUE');
      ELSE
        DBMS_OUTPUT.PUT_LINE('false');
      END IF;
    END;
    /
      

  2.   


    SELECT DECODE(SUM(CNT),'0','TRUE','FALSE') FROM (
      SELECT COUNT(1) CNT FROM B WHERE NOT EXISTS(
        SELECT 1 FROM A WHERE B2=A2 AND B3=A3 AND B4=A4
      )
      UNION ALL
      SELECT COUNT(1) CNT FROM A WHERE NOT EXISTS(
        SELECT 1 FROM B WHERE B2=A2 AND B3=A3 AND B4=A4
      )
    ) A;
      

  3.   

    select decode((case
                    when a.a2 = b.a2 then
                     0
                    else
                     1
                  end) + (case
                    when a.a3 = b.a3 then
                     0
                    else
                     1
                  end) + (case
                    when a.a4 = b.a4 then
                     0
                    else
                     1
                  end),
                  0,
                  'true',
                  'false')
      from a, b
      

  4.   

    select a2,a3,a4
    intersect 
    select b2,b3,b4返回俩个表相同的数据。
    希望对你能用。