SQL Server Come scambiare valori tra due colonne

Quando si lavora con i database, lo spostamento e lo scambio dei valori tra le colonne è un'attività comune.

Spesso, quando si creano e amministrano il mio database, gli errori nella configurazione e nella codifica possono essere risolti semplicemente scambiando valori tra due colonne diverse.

Iniziamo creando la tabella "impiegati".

se esiste (nome SELECT da sys.tables dove name = 'dipendenti') drop table dipendenti GO CREATE dipendenti di tabella (empid int, fname varchar (20), lname varchar (20), deptno int);


Inseriamo alcuni dati di esempio nella tabella.

INSERISCI nei VALORI dipendenti (100, "smith", "jon", 10); INSERISCI nei dipendenti VALUES (101, 'novak', 'tim', 10); INSERISCI i VALORI dei dipendenti (102, "benk", "mark", 10); INSERISCI i VALORI dei dipendenti (103, "lavori", "steve", 10); INSERISCI nei VALORI dipendenti (104, 'alex', 'gravell', 20);


Supponiamo che per errore abbiamo inserito il nome come cognome e viceversa per il reparto 10. Per correggere ciò, è necessario scambiare i valori di nome e cognome per quel dipartimento.

Nella tabella impiegati, firstname = 'smith' e lastname = "jon", dobbiamo scambiare questi valori in modo che la tabella aggiornata abbia firstname = "jon" e lastname = "smith" e allo stesso modo per tutti gli impiegati nel reparto 10.

La query seguente aggiornerà la tabella dei dipendenti scambiando i valori per fname e lname.

SELECT * dai dipendenti; Vai DECLARE @temp come varchar (20) aggiorna dipendenti imposta @temp = fname, fname = lname, lname = @temp WHERE deptno = 10; GO SELECT * dai dipendenti;

Scambia valori tra due colonne


La logica per la query di aggiornamento è la stessa che facciamo in altri linguaggi di programmazione. Memorizziamo i valori che verranno sovrascritti in una variabile temporanea e quindi riscriviamo la variabile temporanea nella posizione corretta.