Welcome to Sign in | Help
in Search

Operatorul de diferenta pe SQL Server

Last post 10-18-2007, 11:20 PM by B_gd_n[ ]Sahlean. 3 replies.
Sort Posts: Previous Next
  •  10-18-2007, 3:11 PM 2970

    Operatorul de diferenta pe SQL Server

    Salut,

    Am urmatoarea intrebare. Pot in SQL Server sa aplic operatorul diferenta intre doua seturi de date? Daca da, cum?

     

    Multumesc,

  •  10-18-2007, 5:30 PM 2976 in reply to 2970

    Re: Operatorul de diferenta pe SQL Server

    EXCEPT and INTERSECT (Transact-SQL)

    Performing Semi-Joins with EXCEPT and INTERSECT


    Cristian Andrei Lefter, SQL Server MVP
    MCT, MCSA, MCDBA, MCAD, MCSD .NET,
    MCTS, MCITP - Database Administrator SQL Server 2005
    http://sqlserver.ro
  •  10-18-2007, 11:13 PM 2980 in reply to 2976

    Re: Operatorul de diferenta pe SQL Server

    Poti face diferenta cu un simplu LEFT | RIGHT OUTER JOIN.

    Exemplu:

    CREATE TABLE T1 (C1 CHAR(1), C2 INT)
    CREATE TABLE T2 (C1 CHAR(1), C2 INT)

    INSERT INTO T1 (C1, C2)
    SELECT Q.C1, Q.C2
    FROM
    (
    SELECT 'A' AS C1, 101 AS C2
    UNION
    SELECT 'B', 102
    UNION
    SELECT 'C', 103
    UNION
    SELECT 'D', 104
    UNION
    SELECT 'E', 105
    ) AS Q

    INSERT INTO T2 (C1, C2)
    SELECT Q.C1, Q.C2
    FROM
    (
    SELECT 'A' AS C1, 101 AS C2
    UNION
    SELECT 'B', 102
    UNION
    SELECT 'X', 106
    ) AS Q

    --DIFERENTA PROPRIU-ZISA; T1-T2 = INREGISTRARILE DIN T1 CARE NU SUNT IN T2
    SELECT T1.C1, T1.C2
    FROM T1 LEFT OUTER JOIN T2 ON T1.C1 = T2.C1 AND T1.C2 = T2.C2
    WHERE T2.C1 IS NULL

     

  •  10-18-2007, 11:20 PM 2981 in reply to 2980

    Re: Operatorul de diferenta pe SQL Server

    Sau subinterogari tip NOT EXISTS:

    SELECT *
    FROM T1
    WHERE NOT EXISTS(SELECT C1 FROM T2 WHERE T1.C1 = T2.C1 AND T1.C2 = T2.C2)

View as RSS news feed in XML
Powered by Community Server (Commercial Edition), by Telligent Systems