即使列中的数据为空,是否可以将fNo列结果返回到所有数据?
当前代码:
Select a.sNo, a.tCode, a.fno
from airplane a, Scheduled_Flight s
Where a.fno = s.fno or SDT >= trunc(sysdate);
Oracle SQL的输出示例:
SNO TCODE FNO
------- ------------------------------ -------
0000001 A320
0000002 A320 VA12190
0000003 A330 VA82716
0000004 A330 VA82723
0000005 A330 VA82722
0000006 A330 VA82123
0000007 A330
0000001 A320
0000002 A320 VA12190
0000003 A330 VA82716
0000004 A330 VA82723
SNO TCODE FNO
------- ------------------------------ -------
0000005 A330 VA82722
0000006 A330 VA82123
0000007 A330
0000001 A320
0000002 A320 VA12190
0000003 A330 VA82716
0000004 A330 VA82723
0000005 A330 VA82722
0000006 A330 VA82123
0000007 A330
0000002 A320 VA12190
SNO TCODE FNO
------- ------------------------------ -------
0000004 A330 VA82723
0000006 A330 VA82123
我只想在今天安排的航班的航班号(fNo)栏中显示结果。今天未安排的其他航班应在fno列中返回空值,同时仍列出所有航班。任何帮助都会受到赞赏,因为我是SQL的新手。
编辑:
这是删除WHERE SDT >= TRUNC (SYSDATE);
时的输出
我想显示下面的所有sNo,但只显示sno 0000003和0000005的fNo。不是今天没有安排的其他航班。
SQL> SELECT a.sNo, a.tCode, a.fno
2 FROM airplane a LEFT OUTER JOIN Scheduled_Flight s ON a.fno = s.fno;
SNO TCODE FNO
------- ------------------------------ -------
0000001 A320
0000002 A320 VA12190
0000003 A330 VA82716
0000004 A330 VA82723
0000005 A330 VA82722
0000006 A330 VA82123
0000007 A330
7 rows selected.
编辑2:
SELECT a.sNo, a.tCode, a.fno
2 FROM airplane a LEFT OUTER JOIN Scheduled_Flight s ON a.fno = s.fno
3 AND SDT >= TRUNC (SYSDATE)
4 order by a.sno;
SNO TCODE FNO
------- ------------------------------ -------
0000001 A320
0000002 A320 VA12190
0000003 A330 VA82716
0000004 A330 VA82723
0000005 A330 VA82722
0000006 A330 VA82123
0000007 A330
编辑3: 我想显示以下内容。
SNO TCODE FNO
------- ------------------------------ -------
0000001 A320
0000002 A320
0000003 A330 VA82716
0000004 A330
0000005 A330 VA82722
0000006 A330
0000007 A330
编辑4:我可以通过SDT进行分组,只显示所显示的SDT的FNO吗?
SNO TCODE FNO SDT
------- ------------------------------ ------- --------------------
0000001 A320
0000002 A320 VA12190
0000003 A330 VA82716 11/SEP/2017 21:59:00
0000004 A330 VA82723
0000005 A330 VA82722 11/SEP/2017 14:00:00
0000006 A330 VA82123
0000007 A330
答案 0 :(得分:0)
您必须使用LEFT JOIN
SELECT a.sNo, a.tCode,s.fno
FROM airplane a LEFT OUTER JOIN Scheduled_Flight s ON a.fno = s.fno