oracle - 需要检查多个条件以进行 Oracle 查询
问题描述
我在下面有一个查询。我可以检查两个条件。如果出现“AAA”,它将显示“AAA”及其 id,否则将显示“BBB”。我需要检查更多条件,例如是否出现“AAA”打印“AAA”及其 id 否则出现“BBB”打印“BBB”及其 id 否则“ccc”出现打印“CCC”及其 id 如何做到这一点?
SELECT DISTINCT institution_id,
CASE
WHEN count(*) over(PARTITION BY institution_id) >=5 THEN 'AAA'
WHEN count(*) over(PARTITION BY institution_id) >=5 THEN 'BBB'
END AS status
FROM table
WHERE data LIKE '% AAA%'
解决方案
WITH
INSTITUTION_COUNT
AS
( SELECT INSTITUTION_ID, COUNT (*) AS INSTITUTION_COUNT
FROM INSTITUTION
GROUP BY INSTITUTION_ID)
SELECT E.INSTITUTION_ID AS INSTITUTION_ID,
DC.INSTITUTION_COUNT AS INSTITUTION_COUNT,
CASE
WHEN DC.INSTITUTION_COUNT < 5 THEN 'Low'
WHEN DC.INSTITUTION_COUNT >= 5 THEN 'High'
END AS STATUS
FROM INSTITUTION E, INSTITUTION_COUNT DC
WHERE E.INSTITUTION_ID = DC.INSTITUTION_ID;
推荐阅读
- common-lisp - 为什么 Common Lisp 在没有引号的情况下评估符号本身?
- python - 为什么我的变量值没有更新?谢谢你的帮助,我有一段时间没有编码了,我不知道你在说什么,所以谢谢
- camera - ov9281 的相机传感器驱动程序
- javascript - 加载资源失败:服务器响应状态为 404(未找到) - JavaScript
- laravel - 背包 laravel 连续对齐图表小部件
- java - 使用随机数和数组的排序方法的时间测试问题
- php - 如何使我在数据库中的菜单内的路线与我的 web.php 相同
- python - 根据 Pandas 中设置的其他列中的匹配将值排序到列中
- c# - Unity Hub 安装空间不足问题
- python - 写入 Tensorboard 会导致内存 (RAM) OOM 问题吗?(尤其是在 PyTorch 中)