Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

sqlzim

Inverter registro em um update

Recommended Posts

Bom dia gente tenho a seguinte situacao

 

original vencimento

1 PF 0002 20071128 19991124

 

gostaria de simplesmente inverter esses registros onde a data vencimento e menor q a original ficando no caso.

 

original vencimento

1 PF 0002 19991124 20071128

 

simplesmente isso !=/

Compartilhar este post


Link para o post
Compartilhar em outros sites

outra solução, sem a necessidade de coluna temporária e case é simplesmente apontar uma coluna para a outra no update e utilizar o where, exemplo:

set nocount on
create table tb_teste (chave int, dtori datetime, dtvenc datetime)
insert into tb_teste values (1, '20071128', '19991124')
insert into tb_teste values (2, '20101214', '19901020')
insert into tb_teste values (3, '19910919', '20110113')

select * from tb_teste

update tb_teste set dtori = dtvenc, dtvenc = dtori 
OUTPUT INSERTED.*, DELETED.*
WHERE dtori > dtvenc 

select * from tb_teste

drop table tb_teste

registros alterados:

chave   dtori                   dtvenc                  chave   dtori                   dtvenc
------- ----------------------- ----------------------- ------- ----------------------- -----------------------
1       1999-11-24 00:00:00.000 2007-11-28 00:00:00.000 1       2007-11-28 00:00:00.000 1999-11-24 00:00:00.000
2       1990-10-20 00:00:00.000 2010-12-14 00:00:00.000 2       2010-12-14 00:00:00.000 1990-10-20 00:00:00.000

antes/depois:

chave       dtori                   dtvenc
----------- ----------------------- -----------------------
1           2007-11-28 00:00:00.000 1999-11-24 00:00:00.000
2           2010-12-14 00:00:00.000 1990-10-20 00:00:00.000
3           1991-09-19 00:00:00.000 2011-01-13 00:00:00.000

chave       dtori                   dtvenc
----------- ----------------------- -----------------------
1           1999-11-24 00:00:00.000 2007-11-28 00:00:00.000
2           1990-10-20 00:00:00.000 2010-12-14 00:00:00.000
3           1991-09-19 00:00:00.000 2011-01-13 00:00:00.000

observe que o registro 3 não foi modificado.

 

 

Obs.: lembre-se sempre de fazer backup antes de operações em massa

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.