首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ORACLE中向SQL查询结果集添加静态值

如何在ORACLE中向SQL查询结果集添加静态值
EN

Stack Overflow用户
提问于 2018-01-23 03:04:37
回答 2查看 4.5K关注 0票数 0

我有一个完美工作的SQL查询。我使用的是Oracle 11g。当前的SQL查询列出了未来6个月的即将到来的航班,然后列出了所有过去的航班。所以我的查询首先列出了2018年的所有航班,然后列出了早在1998年以来的所有旧航班。我需要向这个查询添加两个静态值。我想要添加的两个静态值是“即将到来的航班”和“过去的航班”,以区分哪些航班是新的和旧的。我如何才能做到这一点?我需要将添加的代码合并到下面的当前SQL查询中。我还没能做到这一点。

当前SQL查询:

代码语言:javascript
复制
SELECT FLIGHT_NMBR, SCHEDULED_LAUNCH_DATE
  FROM FLIGHTS
  WHERE DATA_VERSION_NAME = 'WORKING' 
  AND sequence_nmbr >= 0
   ORDER BY (CASE WHEN to_date(scheduled_launch_date, 'DD-MON-YY') 
     BETWEEN add_months(trunc(sysdate, 'MON'), 0) 
     AND add_months(trunc(sysdate, 'MON'), 6) THEN 1 ELSE 2 END),
       (CASE WHEN to_date(scheduled_launch_date, 'DD-MON-YY') 
     BETWEEN add_months(trunc(sysdate, 'MON'), 0) 
     AND add_months(trunc(sysdate, 'MON'), 6) THEN SCHEDULED_LAUNCH_DATE END),
     sequence_nmbr;

上述当前SQL查询的结果:

代码语言:javascript
复制
FLIGHT_NMBR  SCHEDULED
------------ ---------
SpX-14       26-JAN-18
69P          09-FEB-18
SpX-DM1      09-MAR-18
54S          13-MAR-18
OA-9         14-MAR-18
55S          29-APR-18
SpX-15       06-JUN-18
SpX-DM2      22-JUN-18
70P          27-JUN-18
1A/R         20-NOV-98
2A           04-DEC-98

如何才能达到下面的预期结果集:

代码语言:javascript
复制
FLIGHT_NMBR      SCHEDULED
------------     ---------
UPCOMING FLIHGTS-------------------------------STATIC VALUE I WANT TO ADD
SpX-14           26-JAN-18
69P              09-FEB-18
SpX-DM1          09-MAR-18
54S              13-MAR-18
OA-9             14-MAR-18
55S              29-APR-18
SpX-15           06-JUN-18
SpX-DM2          22-JUN-18
70P              27-JUN-18
PAST FLIGHTS-----------------------------------STATIC VALUE I WANT TO ADD
1A/R             20-NOV-98
2A               04-DEC-98

我希望我的下拉列表是这样的:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-23 11:38:04

你可以这样做,

代码语言:javascript
复制
SELECT 'UPCOMING FLIHGTS' text, NULL sched
  FROM dual
UNION ALL
<your select query for upcoming flights>
UNION ALL
SELECT 'PAST FLIGHTS' text, NULL sched
  FROM dual
UNION ALL
<your select query for past flights>
票数 1
EN

Stack Overflow用户

发布于 2018-01-23 03:08:58

您想要做的事情应该在应用程序级别完成。SQL查询返回一个结果集,它是一个表,由具有相同列的行组成。您的新行格式不同。

您可以简化逻辑,并在每一行上包含标志;

代码语言:javascript
复制
SELECT which, FLIGHT_NMBR, SCHEDULED_LAUNCH_DATE
FROM (SELECT F.*,
             (CASE WHEN to_date(scheduled_launch_date, 'DD-MON-YY') BETWEEN add_months(trunc(sysdate, 'MON'), 0) AND add_months(trunc(sysdate, 'MON'), 6)
                   THEN 'UPCOMING' ELSE 'PAST'
              END) as which
      FROM FLIGHTS F
     ) F
WHERE DATA_VERSION_NAME = 'WORKING' AND sequence_nmbr >= 0
ORDER BY (CASE WHEN which = 'UPCOMING' THEN 1 ELSE 2 END),
         (CASE WHEN which = 'UPCOMING' THEN SCHEDULED_LAUNCH_DATE END),
        sequence_nmbr;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48388610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档