sql - 选择表达式时如何做大小写?
问题描述
我试图用 case when 表达式做一个 select 语句。
我收到一个错误
无效的sql语句
这是针对 Oracle SQL 的:
SELECT DATUM_EINDE AANPAK,
CASE WHEN DATUM_EINDE_AANPAK IS NULL THEN DATUM_EINDE_AANPAK
ELSE MAX(DATUM_EINDE_AANPAK)
END AS DATUM_EINDE_AANPAK
FROM T_CJIB_CVE;
解决方案
如果我对您的理解正确,我想这就是您要寻找的;对于 ID = 2,基准为空,因此 - 从整个表中获取最大的基准。
SQL> with t_cjib_cve (id, datum_einde_aanpak) as
2 (select 1, date '2019-06-17' from dual union all
3 select 2, null from dual union all
4 select 3, date '2019-01-01' from dual
5 )
6 select datum_einde_aanpak,
7 case when datum_einde_aanpak is null then
8 (select max(datum_einde_aanpak) from t_cjib_cve)
9 else datum_einde_aanpak
10 end result
11 from t_cjib_cve;
DATUM_EIND RESULT
---------- ----------
2019-06-17 2019-06-17
2019-06-17
2019-01-01 2019-01-01
SQL>
推荐阅读
- java -
溪流 - 不明白这个返回类型 - android - 无法在android的自定义gridview中显示从MYSQL数据库中获取数据
- graphql - 使用 GraphQL 从 frontmatter Markdown 中获取多个图像到 Gatsby
- android - 如何从只能在应用程序中打开或以 Playstore 为目标的 android 应用程序共享博客图片链接?
- python - 如何在虚拟环境中使用python3
- amazon-web-services - 从本地计算机连接到 AWS 上的 Neptune
- python - 如何从 Windows 命令提示符运行 .py 文件?
- dialogflow-es - 验证后对话框流参数重新提示
- javascript - 在 create-react-app 中动态加载图像
- node.js - Puppeteer:Chrome 远程启动