首页 > 解决方案 > 在 SQL 中返回默认值

问题描述

我有一个 SQL 查询:

SELECT ISNULL(VALUE, '-99') 
FROM PM_VALUE 
WHERE ELEMENT_NAME = 'LL'

问题是,如果上面的查询找不到任何符合ELEMENT_NAME = 'LL'条件的记录,它显然不会返回任何内容。

(EX. -99)如果也没有记录,有什么方法可以更新它以返回默认值?我有一个要求,默认情况下我们需要一些值。

标签: sqlsql-server

解决方案


如果您希望该WHERE子句最多匹配一个,那么最简单的方法是聚合:

SELECT COALESCE(MAX(VALUE), '-99')
FROM PM_VALUE
WHERE ELEMENT_NAME = 'LL';

没有GROUP BY返回的聚合查询恰好返回一行。如果没有匹配的WHERE,那么聚合列将是NULL。将COALESCE()变成NULL您的默认值。


推荐阅读