in

UGISS Community

Il sito della community dello User Group Italiano di SQL Server

Compare 2 tables

Last post 07-03-2008 19.14 by raffaeu. 4 replies.
Page 1 of 1 (5 items)
Sort Posts: Previous Next
  • 07-03-2008 13.54

    • raffaeu
    • Top 25 Contributor
      Male
    • Joined on 06-04-2007
    • Bermuda
    • Posts 68
    • Points 1.045

    Compare 2 tables

    Normalmente se devo fare un compare tra due tabelle, utilizzo le primary key ed eseguo qualcosa del tipo

    SELECT [CAMPO] FROM TABELLA 1 WHERE [ID] NOT IN (SELECT [ID] FROM TABELLA 2)

    Ma se volessi fare una select che confronta le righe tra due tabelle e mi restituisce quelle <diverse>?

    Insomma un po' quello che fa il prodotto della RedGate SQLCompare.

    Grazie. Yes

    Raffaele Garofalo
    NET Coder alle isole Bermuda
    MCAD.NET, MCTS Sharepoint
    blog: http://blog.raffaeu.com
    Filed under:
    • Post Points: 20
  • 07-03-2008 18.08 In reply to

    • sgainz
    • Top 10 Contributor
      Male
    • Joined on 06-04-2007
    • Altamura (BA)
    • Posts 118
    • Points 1.540

    Re: Compare 2 tables

    giocando con gli operatori insiemistici, potresti fare:

     

    use tempdb
    go

    create table t1 (col1 int, col2 varchar(10) )
    create table t2 (col1 int, col2 varchar(10) )
    go

    insert t1 (col1, col2) values (1, 'uno')
    insert t1 (col1, col2) values (2, 'due')

    insert t2 (col1, col2) values (2, 'due')
    insert t2 (col1, col2) values (3, 'tre')
    go

    (
        select * from t1
        except
        select * from t2
    )
    union
    (
        select * from t2
        except
        select * from t1
    )
    go

    drop table t1, t2
    go

     

    ciao!

    [Francesco Quaratino]
    • Post Points: 20
  • 07-03-2008 18.14 In reply to

    • raffaeu
    • Top 25 Contributor
      Male
    • Joined on 06-04-2007
    • Bermuda
    • Posts 68
    • Points 1.045

    Re: Compare 2 tables

    Wow suppongo che con la union faccio un merge delle rows estrapolate dalle due select?

    thanks

    Raffaele Garofalo
    NET Coder alle isole Bermuda
    MCAD.NET, MCTS Sharepoint
    blog: http://blog.raffaeu.com
    • Post Points: 20
  • 07-03-2008 18.46 In reply to

    • sgainz
    • Top 10 Contributor
      Male
    • Joined on 06-04-2007
    • Altamura (BA)
    • Posts 118
    • Points 1.540

    Re: Compare 2 tables

    dipende da cosa intendi per merge :-)

    più precisamente la UNION di due set di righe di pari colonne, ti restituisce (come nell'operatore matematico di "unione" di due insiemi):

    una DISTINCT di (tutte le righe del primo set + tutte le righe del secondo set)


    se invece NON volessi la DISTINCT, ovvero se vuoi vedere righe duplicate, devi usare "UNION ALL"

     

    invece l'operatore INTERSECT EXCEPT è equivalente all'operatore insiemistico di "differenza" (tutti gli elementi dell'insieme A "meno" quelli dell'insieme B)

    [Francesco Quaratino]
    • Post Points: 20
  • 07-03-2008 19.14 In reply to

    • raffaeu
    • Top 25 Contributor
      Male
    • Joined on 06-04-2007
    • Bermuda
    • Posts 68
    • Points 1.045

    Re: Compare 2 tables

    Ottima lezione di matematica [SQL]latica di base.

    Big Smile

    Raffaele Garofalo
    NET Coder alle isole Bermuda
    MCAD.NET, MCTS Sharepoint
    blog: http://blog.raffaeu.com
    • Post Points: 5
Page 1 of 1 (5 items)
(C) 2007 User Group Italiano di SQL Server