Executar Update dependendo do resultado de um Select

28/04/2023

0

SQL

Bom dia,

Conforme executar um update dependendo do resultado de uma select

Exemplo:

SELECT
COUNT(DISTINCT(ZA0_STITEM))
FROM
ZA0010
WHERE
D_E_L_E_T_=''''
AND ZA0_NFENTR=''000640039''

Se o resultado desta select for maior que 1 então executa um tipo de update caso contrario outro tipo de update
Wanderson Fernandes

Wanderson Fernandes

Responder

Post mais votado

28/04/2023

Maior que 1, significa 2, 3, 4, ou mais.

Se fosse 1 ou mais, que é mais simples e eficiente, poderia ser (supondo que é um SQL Server):

if exists(SELECT 1
          FROM ZA0010
          WHERE
            D_E_L_E_T_='' AND
            ZA0_NFENTR=''000640039'')
  update 1
else
  update 2


Para maior que 1, pode ser algo como:

if ( ( select count(1)
       from
         (SELECT top 2 1
          FROM ZA0010
          WHERE
            D_E_L_E_T_='' AND
            ZA0_NFENTR='000640039') z ) > 1 )
  update 1
else
  update 2

Arthur Heinrich

Arthur Heinrich
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar