Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Atualizando linha na tabela com base na subconsulta na mesma tabela


A maneira mais simples de fazer isso seria
UPDATE tableA
SET    date5 = (SELECT MAX(D)
                FROM   (VALUES(date1),
                              (date2),
                              (date3),
                              (date4)) T(D))  

Ou (como você adicionou a tag de 2005)
UPDATE tableA
SET    date5 = (SELECT MAX(D)
                FROM   (SELECT date1 UNION ALL
                        SELECT date2 UNION ALL
                        SELECT date3 UNION ALL
                        SELECT date4) T(D))