Вы можете использовать обе функции IsNull(a, b)
или Coalesce(a, b, c, ...)
, где IsNull возвращает значение «b», если «a» равно нулю, а Coalesce возвращает первый ненулевой аргумент.Важным отличием является то, что IsNull () принудительно приводит приведение (или преобразование) "b" к типу "a", в то время как тип возвращаемого значения Coalesce совпадает с возвращаемым аргументом, что позволяет движку пробовать любое преобразование только ПОСЛЕ оценкифункции.
Т.е., если столбец "a" имеет тип данных int
, запись IsNull(a, '1')
в порядке, но IsNull(a, 'hello')
вызывает ошибку преобразования, в то время как запись Coalesce(a, 'hello')
разрешена, иошибка будет возникать только в том случае, если a
равно нулю, и вы, например, пытаетесь вставить возвращенное значение ('hello') в столбец int
, но выполняете автоматическое преобразование значения a
(если нетnull) при вставке в столбец varchar.