una transponer registros multiple filas ejemplos dinamico concatenar columns columnas columna 10g sql oracle ora-00923

sql - transponer - pivot oracle columns to rows



¿Cómo selecciona todas las columnas, más el resultado de una declaración CASE en Oracle 11g? (3)

Quiero seleccionar *, y no tener que escribir todas las columnas individuales, pero también quiero incluir una columna personalizada con una declaración de caso. Intenté lo siguiente:

select *, (case when PRI_VAL = 1 then ''High'' when PRI_VAL = 2 then ''Med'' when PRI_VAL = 3 then ''Low'' end) as PRIORITY from MYTABLE;

Pero se queja de que

ORA-00923: FROM keyword not found where expected


Agrega un alias para mytable como este:

select t.*, (case when PRI_VAL = 1 then ''High'' when PRI_VAL = 2 then ''Med'' when PRI_VAL = 3 then ''Low'' end) as PRIORITY from MYTABLE t;

Esto no depende de ninguna versión específica de Oracle, no estoy seguro acerca de otras bases de datos.


Como dice IronGoofy, agregue el alias de la tabla.

En una nota diferente, tenga en cuenta que hay una sintaxis de casos de búsqueda práctica que sería adecuada para su situación:

select t.*, case PRI_VAL when 1 then ''High'' when 2 then ''Med'' when 3 then ''Low'' end as PRIORITY from MYTABLE t;


Hazlo asi:

select e.*, case deptno when 30 then ''High'' when 20 then ''Medi'' when 10 then ''Low'' else ''Very Low'' end case from emp e order by deptno desc;