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