segunda-feira, 7 de junho de 2010

Utilizando condições no Oracle e Mysql

Oracle 9i, Oracle 10g, Oracle 11g

No oracle não utilizamos a condicional "IF", no lugar deste devemos utilizar:

CASE [ expression ]
    WHEN condition_1 THEN result_1
    WHEN condition_2 THEN result_2
    ...
    WHEN condition_n THEN result_n
    ELSE result
END

Vamos aos exemplos

    SELECT CASE F4_INCSOL
           WHEN 'S' THEN SUM(d1.D1_ICMSRET)
           ELSE 0
           END
      FROM SD1060 d1
INNER JOIN SF4
        ON f4.F4_CODIGO = d1.D1_TES (cont)...

ou

    SELECT CASE
           WHEN F4_INCSOL = 'S' THEN SUM(d1.D1_ICMSRET)
           ELSE 0
           END
      FROM SD1060 d1
INNER JOIN SF4
        ON f4.F4_CODIGO = d1.D1_TES (cont)...


Já no MYSQL poderíamos exemplicar da seguinte maneira


    SELECT IF(F4_INCSOL = 'S', SUM(d1.D1_ICMSRET), 0)
      FROM SD1060 d1
INNER JOIN SF4
        ON f4.F4_CODIGO = d1.D1_TES (cont)...

Nenhum comentário: