Ответ 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 ...
Я генерирую представление, и я хочу заполнять ячейки с заданным значением, если они являются нулевыми.
Выбор для представления:
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
Вы можете использовать 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 ...
Используйте 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 ...
case when R1.Type is null then 'ND' else R1.Type end AS Referred_by_3
Вы можете использовать функцию IsNull(column_expression,default_value)
.
И почему бы не определить значение по умолчанию в поле в таблице базы данных? Помните, если вам нужны все записи, чтобы иметь это значение или один отправленный вставить или удалить, и вы никогда не хотите, чтобы значение было нулевым, вы должны исправить любые существующие нули, а затем добавить значение по умолчанию и убедиться, что в поле установлено значение "Разрешить null". преимущество этого подхода заключается в том, что он будет следить за тем, чтобы правило выполнялось независимо от того, как данные вводятся в систему. Если вы хотите использовать по умолчанию только время, сделайте это в коде приложения или сохраненном proc. Но если поле должно иметь значение alawys, лучше всего это сделать в datbase, чтобы избежать проблем с целостностью данных.