Я использовал COALESCE много раз, но, полагаю, я никогда не сталкивался с этой конкретной ситуацией.Предположим, что на @ param1 имеется только одна строка.
select @test = COALESCE (column1, 'default') FROM Table1 WHERE column3 = @param1
В этом сценарии, если значение column1 равно нулю, значение «default» выбирается, когда инструкция sql фактически возвращает строку.Что делать, если для @ param1 нет соответствующих записей.
Допустим, я хочу всегда иметь значение по умолчанию для @test.Правильно ли следующее или есть другой способ?
select @test = COALESCE( (select column1 FROM Table1 WHERE column3 = @param1), 'default').
Я предположил, что select @test = COALESCE (column1, 'default') FROM Table1 WHERE column3 = @param1
будет содержать значение по умолчанию, даже если оно не вернуло строку.Нет.
Полагаю, я могу также проверить, равен ли @test NULL и назначить значение по умолчанию.