SELECT COALESCE(value, 'M') FROM MyTable
Если значение равно нулю, возвращаемое значение будет установлено на "M"
Существует ли функция, аналогичная COALESCE, в случае, если значение является пустой строкой?
IBMВерсия i: 7.1
Нет.
Просто используйте выражение CASE, предполагая, что значение может быть NULL или пустым, сначала проверьте NULL.
case when value is NULL then 'M' when value = '' then 'M' else value end as newValue
Вы можете использовать NULLIF():
NULLIF()
SELECT COALESCE(NULLIF(value, ''), 'M') FROM [My Table]
База данных DB2 поддерживает COALESCE .Но в любом случае COALESCE будет работать только для замены NULL, а не пустой строки.Одним из вариантов здесь было бы просто использовать выражение CASE:
COALESCE
NULL
CASE
SELECT CASE WHEN value <> '' THEN value ELSE 'M' END AS value FROM [My Table];
Если вы хотите обрабатывать как NULL, так и пустую строку вместе, используйте это:
SELECT CASE WHEN COALESCE(value, '') <> '' THEN value ELSE 'M' END AS value FROM [My Table];