Sql Sets e Wheres

11/09/2004

Olá pessoal!
Alguém saberia se é possível na cláusula Update setar dois campos com dois Where diferentes?
Por ex:
Codigo = Codigo * 10 Where Codigo < 100 ou
Codigo = Codigo + 10 Where Codigo >= 100

Ou terei que fazer dois Updates ?
Desde já agradeço !!!


Ipc$

Respostas

11/09/2004

Afarias

terá de fazer 2 updates



T+


Responder Citar

13/09/2004

Ipc$

Ok Afarias, obrigado !


Responder Citar

13/09/2004

Motta

qual bd ?

no Oracle

update tabela
set Codigo = decode(sign(codigo - 100),-1,Codigo * 10,
1,Codigo + 10,Codigo + 10)



no FB tem uma funcao coalesce (acho) que é semenhante ao decode


Responder Citar

13/09/2004

Beppe

Tvz vc possa fazer um update só, usando esta sintaxe:
Codigo = ((Codigo * 10) * cast((Codigo < 100) as Integer)) + 
  ((Codigo + 10) * cast((Codigo >= 100) as Integer))



Responder Citar

14/09/2004

Ipc$

Obrigado pessoal, vou fazer uns testes. Se funcionar num banco e em outro não, para mim não vai servir pq preciso de um sql padrão que funcione em qualquer banco.


Responder Citar