¿Cómo puedo copiar datos de una columna a otra en la misma tabla?

253

¿Es posible copiar datos de la columna A a la columna B para todos los registros en una tabla en SQL?

jonney
fuente
1
posible duplicado de Cómo copiar datos de una columna a otra columna
Daniel DiPaolo
@DanielDiPaolo esa pregunta es para copiar una columna a una tabla diferente
Nick T

Respuestas:

466

Qué tal esto

UPDATE table SET columnB = columnA;

Esto actualizará cada fila.

Ash Burlaczenko
fuente
1
Esto también funciona si desea transferir valor anterior a otra columna y actualizar la primera de ellas: UPDATE table SET columnA = 'new value', columnB = columnA. Como dice otra respuesta: no olvide la cláusula WHERE para actualizar solo lo que se necesita.
Carl di Ortus
55
Estoy pensando en un proceso complejo haciendo un ciclo en cada registro cuando la respuesta es tan simple
deFreitas
66
@deFreitas Un hombre sabio me dijo: si estás pensando en escribir un bucle para lograr algo en SQL, lo estás haciendo mal.
Daniel Patrick
95
UPDATE table_name SET
    destination_column_name=orig_column_name
WHERE condition_if_necessary
dev4092
fuente
10
@ Mark, esto realmente tiene sentido, ¿por qué se rechaza esto? Tuve una situación en la que necesito copiar un valor de fecha de una columna a otras columnas, y solo se aplica a ALGUNAS de las columnas, y no a todas. Por lo tanto, sería necesario tener un DONDE en la declaración.
finnTheHumin
55
@finnTheHuman La pregunta pregunta cómo "copiar datos de todos los registros" que la respuesta anterior responde correctamente para que esto no agregue nada
mmmmmm
77
@ Mark "¿Cómo difiere esto de la respuesta aceptada anterior", tiene una cláusula WHERE. "así que esto no agrega nada", no estoy de acuerdo, agrega algo. Es un buen punto incluir la cláusula WHERE SI ES NECESARIO. deberíamos ser responsables de las respuestas a votos negativos. los que odian
van a
En mi caso, agregué una columna last_seen. UPDATE user SET last_seen = first_seen WHERE last_seen IS NULL
luckydonald
No estoy de acuerdo con uno de ustedes. ¡Pero no estoy dispuesto a decir quién !. Donde la cláusula funciona como un regalo
Andrew Day
0

Esto actualizará todas las filas en esas columnas si el modo seguro no está habilitado.

UPDATE table SET columnB = columnA;

Si el modo seguro está habilitado, deberá usar una cláusula where. Yo uso la clave primaria como mayor que 0, básicamente todo se actualizará

UPDATE table SET columnB = columnA where table.column>0;

Vayuj Rajan
fuente