【发布时间】:2020-06-14 12:39:12
【问题描述】:
我认为这应该不难。我正在编写一个 Oracle-SQL 代码来从 SQL 中提取数据:
select ID, Qty from TableOne where ID in ('A', 'B', 'C')
如果 IN 条件中的某些项目匹配,我希望数据库显示查询结果,如果 IN 条件中的这些项目不匹配,则返回默认值。 例如,我希望结果是:
+----+-----------+
| ID | Qty |
+----+-----------+
| A | 3 |
| A | 5 |
| B | 4 |
| C | Not Found |
+----+-----------+
TableOne 中没有 ID = C 的地方。
有没有简单的方法来编码结果? 非常感谢!
【问题讨论】:
-
您好 Jono,我认为您无法使用 IN 运算符实现您想要的。您需要做的是在 TableOnbe 和另一个具有值(A、B、C)的表/临时表之间进行外部连接。您还可以使用此处概述的 NVL2 功能。 stackoverflow.com/questions/3523036/…
-
@Francis 啊...我明白你的意思。但是如何在 Oracle SQL 中添加临时表?我只是 SQL 世界的新手。
-
嗨,Jono,我回答这个问题时正在火车上。好像有几个回复。我希望他们中的一个回答了你的问题