oracle中多个case语句的别名

Alias for multiple case statements in oracle

我是这个 oracle 概念的新手,任何人都可以帮助为 case 语句提供别名。

select * from (
    Select CASE WHEN to_char(honor) = 1 then 'FIRST'
              WHEN to_char(honor) = 2 then 'SECOND'
              WHEN to_char(honor) = 3 then 'THIRD'
              WHEN to_char(honor) = 4 then 'FOURTH'
              ELSE to_char(honor) END as temp ,HORONABLE,to_char(crtd_dtt,'YYYY-MM') as "DateofHonor"
     from ld_leg_t
     where CUR_OPTLSTAT_ID not in (355,360)
     ORDER BY  to_char(crtd_dtt,'YYYY-MM') ASC )
    pivot
    (
    count(HORONABLE)
    for temp in ('FIRST','SECOND','THIRD','FOURTH')
    )
order by "DateofHonor"

有什么方法可以包含 FIRST 、 SECOND 、 THIRD 和 FOURTH 的别名。这样我就可以使用 PHP .

检索它

如果您的意思是 this,那么是的 - 请参阅 FOR TEMP ... 行和正在使用的别名。

SQL> SELECT *
  2    FROM (SELECT CASE
  3                    WHEN deptno = 10 THEN 'FIRST'
  4                    WHEN deptno = 20 THEN 'SECOND'
  5                    WHEN deptno = 30 THEN 'FOURTH'
  6                    ELSE '40'
  7                 END AS temp,
  8                 dname
  9            FROM dept)
 10         PIVOT (COUNT (dname) FOR temp IN ('FIRST' as A, 'SECOND' as B, 'THIRD' as C));

         A          B          C
---------- ---------- ----------
         1          1          0

SQL>