Использование COALESCE при отсутствии возвращенных строк

Я использовал 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, и присвоить значение по умолчанию.

6
задан Alex J 25 August 2011 в 19:01
поделиться