Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Я не вижу проблемы в isnull или coalesceТак я тоже не вижу.
nullif использую в двух случаях
нужно втыкать и разбиратьсяИмхо, один раз воткнете — и разберетесь. Дальше будете просто использовать, как паттерн. В случае, например, текста процедуры, я еще могу с Вами согласиться — там можно и простой-понятный IF применить. Но когда допустимо использовать только inline (выводимые поля, inline-табличные функции, вьюхи, вычислимые колонки) — это имхо хорошая альтернатива громоздким CASE-WHEN
LEFT(Q.Src, CHARINDEX(' ', Q.Src+' ') - 1) NameOnlyQ.Src + 5 - (Q.Src-1) % 6 NextTimes6SELECT
Q.Src,
Q.Src + ISNULL(6 - NULLIF(Q.Src % 6, 0), 0) AS NextTimes6,
Q.Src + (6 - COALESCE(NULLIF(Q.Src % 6, 0), 6)) as NextTimes6Coalesce
FROM (
SELECT TOP 10
CONVERT(INT, 1 + 37 * RAND(CHECKSUM(NEWID()))) Src
FROM SYSOBJECTS S
) Q;
Переход через NULL