viernes, 6 de junio de 2014

Consulta con condicional en db2 / sql



Tengo que realizar una consulta en db2 (igual esto funciona en otros motores, hay que ver bien la sintaxis)  que muestre una información si se cumple determinada condición y otra si no se cumple, algo del estilo mostrar el valor A si C>D o B si C<=D.

La sintaxis en DB2 es la siguiente

Select
  CASE
        WHEN (C>D)
  THEN
        A
  ELSE
        B
  END
               as "texto….",
from TABLA 


jueves, 5 de junio de 2014

Consulta en DB2 filtrando por fecha en formato YYYYMMDD.



Estuve bastante rato buscando  cómo hacer para en DB2 hacer una consulta de los registros de la base que cumplieran con ser los del día, siendo que estos están guardados en formato YYYYMMDD.

Lo pude solucionar de la siguiente forma.


select * from TABLA
                where (CAMPO in (
                                               select concat(concat('20',substr(CHAR(current date),7,2)),concat(substr(CHAR(current date),1,2),substr(CHAR(current date),4,2))) from mmdb.locale FETCH FIRST 1 ROWS ONLY
                                                    )
                              );



Obviamente se pude agregar el where que se necesite y los join también que necesiten.

Si tienen alguna forma más fácil de hacerlo será bienvenida.