sql - 有条件地从不同的表中选择

标签 sql oracle

我有一个要求:

表 A 中有一列 CNT

如果CNT的值> 0

我必须选择列 SERIALDESCRIPTION

来自表 B else SERIALDESCRIPTION

来自表 C。

我如何在 Oracle 中执行此操作

最佳答案

您需要使用 UNION:

SELECT a.cnt, b.serial, b.description
  FROM a INNER JOIN b
    ON a.key = b.key
 WHERE a.cnt > 0
 UNION ALL
SELECT a.cnt, c.serial, c.description
  FROM a INNER JOIN c
    ON a.key = c.key
 WHERE a.cnt <= 0;

希望这对您有所帮助。

关于sql - 有条件地从不同的表中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50612672/

相关文章:

mysql - 如何在一个字段中查找重复项而在另一个字段中不重复

mysql - 如何使用触发器删除单行

MySQL Subselect 将两个表和聚合函数合并到单个查询中

c# - Entity Framework 4 - 事件连接数

java - JPA 标准在所选日期上添加一天

database - 甲骨文数据库 docker

mysql - 从不相关的表修改现有查询

sql - Oracle - 可以使用 concat 进行子查询吗?

sql - SQL或Access中的排序表

java - 受影响的 Oracle JDBC batchUpdate 行始终为 -2 (Statement.SUCCESS_NO_INFO)