使用 join 语句创建 case 表达式;甲骨文
Posted
技术标签:
【中文标题】使用 join 语句创建 case 表达式;甲骨文【英文标题】:Creating a case expression with a join statement; Oracle 【发布时间】:2018-05-06 21:35:05 【问题描述】:我需要所有Library_ID
以是或否的形式返回。它们是 1、2 或 3,因此我需要将 1、2 或 3 的所有内容更改为是,将所有其他内容更改为否。到目前为止,这是我的声明:
SELECT DISTINCT
Title, Publisher, Release_Date, ISBN, l.Library_ID
FROM
Catalog_Item c
INNER JOIN
Book b ON c.Catalog_Item_ID = b.Catalog_Item_ID
INNER JOIN
Physical_Item p ON c.Catalog_Item_ID = p.Catalog_Item_ID
INNER JOIN
Branch br ON p.Branch_ID = br.BRranch_ID
INNER JOIN
Library l ON br.Library_ID = l.Library_ID
ORDER BY
Title;
现在我被卡住了。
【问题讨论】:
向我们展示数据库架构、示例数据、当前和预期输出。请阅读How-to-Ask 这里是START 了解如何提高问题质量并获得更好答案的好地方。 How to create a Minimal, Complete, and Verifiable example ***.com/q/177956/1531971 【参考方案1】:就这么简单吗?
SELECT DISTINCT
Title, Publisher, Release_Date, ISBN,
case when l.Library_ID in (1,2,3) then 'Yes' else 'No' end as Library_ID
From ...
【讨论】:
【参考方案2】:试试下面的CASE表达式:-
SELECT DISTINCT
Title, Publisher, Release_Date, ISBN, l.Library_ID,
CASE
WHEN l.Library_ID IN (1,2,3) THEN 'YES'
ELSE 'NO'
END AS "YES_OR_NO"
FROM
Catalog_Item c
INNER JOIN
Book b ON c.Catalog_Item_ID = b.Catalog_Item_ID
INNER JOIN
Physical_Item p ON c.Catalog_Item_ID = p.Catalog_Item_ID
INNER JOIN
Branch br ON p.Branch_ID = br.BRranch_ID
INNER JOIN
Library l ON br.Library_ID = l.Library_ID
ORDER BY
Title;
【讨论】:
以上是关于使用 join 语句创建 case 表达式;甲骨文的主要内容,如果未能解决你的问题,请参考以下文章