sql - 在 SQL 中返回默认值
问题描述
我有一个 SQL 查询:
SELECT ISNULL(VALUE, '-99')
FROM PM_VALUE
WHERE ELEMENT_NAME = 'LL'
问题是,如果上面的查询找不到任何符合ELEMENT_NAME = 'LL'
条件的记录,它显然不会返回任何内容。
(EX. -99)
如果也没有记录,有什么方法可以更新它以返回默认值?我有一个要求,默认情况下我们需要一些值。
解决方案
如果您希望该WHERE
子句最多匹配一个,那么最简单的方法是聚合:
SELECT COALESCE(MAX(VALUE), '-99')
FROM PM_VALUE
WHERE ELEMENT_NAME = 'LL';
没有GROUP BY
返回的聚合查询恰好返回一行。如果没有匹配的WHERE
,那么聚合列将是NULL
。将COALESCE()
变成NULL
您的默认值。
推荐阅读
- python - 向 setup.py sdist 添加符号链接
- javascript - React - 使用 .map 函数和新的 Array.fill 更新二维数组的状态并用随机数填充
- react-native - React Native - 如何将车轮选择器数据的格式从 1 更改为 01
- python - 如何解码转义的 Unicode 字符?
- java - Weblogic 12c 无法访问选定的应用程序。无法加载与 e=web-fragment 对应的 java 类型
- ruby-on-rails - 当没有被告知时,Rails 将空白放置在脚手架命令中
- ios - iOS12 导致 Metal Command Buffer 执行出错,渲染出现故障或未发生
- puppeteer - 使用 puppeteer 加载动态内容?
- r - 如何在R中找到曲线下的面积?
- mysql - 如何在我的 sql 中模拟“Intead of”触发器