SQL Server Cómo intercambiar valores entre dos columnas

Cuando se trabaja con bases de datos, mover y cambiar valores entre columnas es una tarea común.

Con frecuencia, al crear y administrar mi base de datos, los errores en la configuración y la codificación se pueden corregir simplemente cambiando los valores entre dos columnas diferentes.

Vamos a empezar por crear la mesa 'empleados'.

si existe (SELECCIONE el nombre de sys.tables donde nombre = 'empleados') descartar empleados GO CREATE empleados de tabla (empid int, fname varchar (20), lname varchar (20), deptno int);


Vamos a insertar algunos datos de muestra en la tabla.

INSERTE en empleados VALORES (100, 'smith', 'jon', 10); INSERTAR en los empleados VALORES (101, 'novak', 'tim', 10); INSERTE en los empleados VALUES (102, 'benk', 'mark', 10); INSERTE en los empleados VALORES (103, 'empleo', 'steve', 10); INSERTE en empleados VALORES (104, 'alex', 'gravell', 20);


Supongamos que accidentalmente hemos insertado el nombre de pila como apellido y viceversa para el departamento 10. Para corregir esto, necesitamos intercambiar los valores de nombre de pila y apellido de ese departamento.

En la tabla de empleados, firstname = 'smith' y lastname = "jon", necesitamos intercambiar estos valores para que la tabla actualizada tenga firstname = "jon" y lastname = "smith" y de la misma manera para todos los empleados del departamento 10.

La siguiente consulta actualizará la tabla de empleados intercambiando los valores de fname y lname.

SELECCIONAR * de empleados; Ir DECLARAR @temp como varchar (20) los empleados de la actualización establecen @temp = fname, fname = lname, lname = @temp WHERE deptno = 10; GO SELECT * de los empleados;

Intercambiar valores entre dos columnas.


La lógica para la consulta de actualización es la misma que hacemos en otros lenguajes de programación. Almacenamos los valores que se sobrescribirán en una variable temporal y luego volvemos a escribir la variable temporal en la posición correcta.