SQL Server Hur byter värden mellan två kolumner

När du arbetar med databaser är det en vanlig uppgift att flytta och byta värden mellan kolumner.

Ofta, när du bygger och administrerar min databas kan fel i konfiguration och kodning lösas genom att enkelt byta värden mellan två olika kolumner.

Låt oss börja med att skapa bord "anställda".

Om det existerar (VÄLJ namn från sys.tables där namn = 'anställda'), släpp tabellmedarbetare, SKAPA tabellanställda (empid int, fname varchar (20), lname varchar (20), deptno int);


Låt oss infoga några provdata i tabellen.

INSERT till anställda VÄRDEN (100, 'smith', 'jon', 10); INSERT till anställda värden (101, 'novak', 'tim', 10); INSERT till anställda VÄRDEN (102, 'benk', 'mark', 10); INSERT till anställda VÄRDEN (103, 'jobb', 'steve', 10); INSERT till anställda VÄRDEN (104, 'alex', 'gravell', 20);


Antag att oavsiktligt har vi lagt in förnamn som efternamn och vice versa för avdelning 10. För att rätta till detta måste vi byta förnamn och efternamnsvärden för den avdelningen.

I anställdas bord, förnamn = "smith" och efternamn = "jon", måste vi byta dessa värden så att den uppdaterade tabellen kommer att ha förnamn = "jon" och efternamn = "smith" och likaledes för alla anställda i avdelning 10.

Nedanförfrågan uppdaterar medarbetarnas tabell genom att byta värdena för fname och lname.

SELECT * från anställda; Gå DECLARE @temp som varchar (20) uppdatera anställda set @temp = fname, fname = Lname, lname = @temp VAR DEPTNO = 10; GO SELECT * från anställda;

Byt värden mellan två kolumner


Logiken för uppdateringsfrågan är samma som vi gör på andra programmeringsspråk. Vi lagrar värdena som kommer att skrivas över i en temporär variabel och sedan skriva tillbaka den temporära variabeln till rätt position.