Executar Update dependendo do resultado de um Select

SQL

28/04/2023

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

Curtidas 0

Melhor post

Arthur Heinrich

Arthur Heinrich

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

GOSTEI 1
POSTAR