SQL View - добавить значения по умолчанию, если null?

Я генерирую представление, и я хочу заполнять ячейки с заданным значением, если они являются нулевыми.

Выбор для представления:

SELECT a_case.Id, 
    R1.Type AS Referred_by_1,
    R1.Type AS Referred_by_2,
    R1.Type AS Referred_by_3
FROM dbo.CaseInfo a_case LEFT JOIN
    dbo.Referrer R1 ON P.Id = R1.Case_Id AND R1.Seq = 1 LEFT JOIN
    dbo.Referrer R2 ON P.Id = R2.Case_Id AND R2.Seq = 2 LEFT JOIN
    dbo.Referrer R3 ON P.Id = R3.Case_Id AND R3.Seq = 3 

Источники ссылок необязательны, и если не указано, мне нужно заполнить поле "ND".

Я думаю, что, возможно, я должен использовать CASE WHEN, но я не уверен, как интегрировать его в существующий select...

Любые советы с благодарностью получили!  - L

Ответы

Ответ 1

Вы можете использовать ISNULL:

SELECT a_case.Id,      
    ISNULL(R1.Type, 'ND') AS Referred_by_1,     
    ISNULL(R2.Type, 'ND') AS Referred_by_2,     
    ISNULL(R3.Type, 'ND') AS Referred_by_3 
FROM ...

Ответ 2

Используйте COALESCE, например.

SELECT a_case.Id, 
       COALESCE(R1.Type, 'ND') AS Referred_by_1,
       COALESCE(R2.Type, 'ND') AS Referred_by_3,
       COALESCE(R3.Type, 'ND') AS Referred_by_3
  FROM ...

Ответ 3

case when R1.Type is null then 'ND' else R1.Type end AS Referred_by_3

Ответ 4

Вы можете использовать функцию IsNull(column_expression,default_value).

Ответ 5

И почему бы не определить значение по умолчанию в поле в таблице базы данных? Помните, если вам нужны все записи, чтобы иметь это значение или один отправленный вставить или удалить, и вы никогда не хотите, чтобы значение было нулевым, вы должны исправить любые существующие нули, а затем добавить значение по умолчанию и убедиться, что в поле установлено значение "Разрешить null". преимущество этого подхода заключается в том, что он будет следить за тем, чтобы правило выполнялось независимо от того, как данные вводятся в систему. Если вы хотите использовать по умолчанию только время, сделайте это в коде приложения или сохраненном proc. Но если поле должно иметь значение alawys, лучше всего это сделать в datbase, чтобы избежать проблем с целостностью данных.