在SQL中返回默认值

时间:2018-12-27 20:46:13

标签: sql sql-server

我有一个SQL查询:

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

没有GROUP BY的聚合查询仅返回一行。如果没有任何匹配WHERE,则聚合列将为NULLCOALESCE()NULL设为您的默认值。