--Tabla prueba
DROP TABLE USUARIO1.MES CASCADE CONSTRAINTS;
CREATE TABLE USUARIO1.MES(
NUMERO NUMBER
);
--Data de la tabla prueba
SET DEFINE OFF;
INSERT INTO USUARIO1.MES (NUMERO)
VALUES (1);
INSERT INTO USUARIO1.MES (NUMERO)
VALUES (2);
INSERT INTO USUARIO1.MES (NUMERO)
VALUES (3);
INSERT INTO USUARIO1.MES (NUMERO)
VALUES (4);
INSERT INTO USUARIO1.MES (NUMERO)
VALUES (5);
INSERT INTO USUARIO1.MES (NUMERO)
VALUES (6);
INSERT INTO USUARIO1.MES (NUMERO)
VALUES (7);
INSERT INTO USUARIO1.MES (NUMERO)
VALUES (8);
INSERT INTO USUARIO1.MES (NUMERO)
VALUES (9);
INSERT INTO USUARIO1.MES (NUMERO)
VALUES (10);
INSERT INTO USUARIO1.MES (NUMERO)
VALUES (11);
INSERT INTO USUARIO1.MES (NUMERO)
VALUES (12);
COMMIT;
--Maneras de hacer un CASE
SELECT
CASE
WHEN NUMERO = '1' THEN 'Enero'
WHEN NUMERO = '2' THEN 'Febrero'
WHEN NUMERO = '3' THEN 'Marzo'
WHEN NUMERO = '4' THEN 'Abril'
WHEN NUMERO = '5' THEN 'Mayo'
WHEN NUMERO = '6' THEN 'Junio'
WHEN NUMERO = '7' THEN 'Julio'
WHEN NUMERO = '8' THEN 'Agosto'
WHEN NUMERO = '9' THEN 'Septiembre'
WHEN NUMERO = '10' THEN 'Octubre'
WHEN NUMERO = '11' THEN 'Noviembre'
WHEN NUMERO = '12' THEN 'Diciembre'
ELSE 'Numero para mes inválido'
END AS MES
FROM MES
WHERE NUMERO=№ ---SI QUEREMOS TRAER EL MES COMO PARÁMETRO
--Otra forma de hacer el CASE
SELECT
CASE NUMERO
WHEN 1 THEN 'Enero'
WHEN 2 THEN 'Febrero'
WHEN 3 THEN 'Marzo'
WHEN 4 THEN 'Abril'
WHEN 5 THEN 'Mayo'
WHEN 6 THEN 'Junio'
WHEN 7 THEN 'Julio'
WHEN 8 THEN 'Agosto'
WHEN 9 THEN 'Septiembre'
WHEN 10 THEN 'Octubre'
WHEN 11 THEN 'Noviembre'
WHEN 12 THEN 'Diciembre'
ELSE 'Numero para mes inválido'
END AS MES
FROM MES
WHERE NUMERO=№ ---SI QUEREMOS TRAER EL MES COMO PARÁMETRO
--Misma resultado pero con DECODE
SELECT DECODE(NUMERO,
1, 'ENERO',
2, 'FEBRERO',
3, 'MARZO',
4, 'ABRIL',
5, 'MAYO',
6, 'JUNIO',
7, 'JULIO',
8, 'AGOSTO',
9, 'SEPTIEMBRE',
10, 'OCTUBRE',
11, 'NOVIEMBRE',
12, 'DICIEMBRE',
'Mes no existe') MES
FROM MES
WHERE NUMERO=№ ---SI QUEREMOS TRAER EL MES COMO PARÁMETRO
Nota:
1- LOS CASE no llevan coma después de la asignación del THEN 'VALOR_ASIGNADO'.
2- Si el tipo campo es number no es necesario la comilla simple (' '), si
el campo es varchar es necesario aplicar la comilla simple.
3- En el DECODE después del DECODE(CAMPO_TABLA...debemos de digitar el campo de la tabla
donde están los valores a los que se les va a hacer el if- else if -else del DECODE.
4- El ELSE no es obligatorio ponerlo en el CASE.
5- Sintaxis del CASE
Select CAMPO_TABLA2, CAMPO_TABLA3, etc
CASE CAMPO_TABLA1
WHEN CONDICION -> VALOR -> THEN -> 'VALOR_ASIGNADO'
WHEN CONDICION -> VALOR -> THEN -> 'VALOR_ASIGNADO'
WHEN CONDICION -> VALOR -> THEN -> 'VALOR_ASIGNADO'
--ASÍ SUCECIVAMENTE
ELSE -> 'VALOR_ASIGNADO'
END -> ALIAS_COLUMNA
FROM TABLA
--SI SE DESEA SE FILTRA
WHERE ->CONDICIÓN --SE PUEDE ASIGNAR EL "&" PARA FILTRAR SOLO UNO POR PANTALLA
6-Sintaxis del DECODE
Select CAMPO_TABLA1, CAMPO_TABLA2, etc, DECODE(CAMPO_tABLA,
VALOR,'VALOR_ASIGNADO'
VALOR,'VALOR_ASIGNADO'
VALOR,'VALOR_ASIGNADO'
--ASÍ SUCESIVAMENTE
'VALOR_ASIGNADO' --ACTÚA COMO ELSE
FROM TABLA
--SI SE DESEA SE FILTRA
WHERE ->CONDICIÓN --SE PUEDE ASIGNAR EL "&" PARA FILTRAR SOLO UNO POR PANTALLA
No hay comentarios:
Publicar un comentario