суббота, 16 марта 2013 г.

Как найти первое отличное от NULL значение из набора значений. Функция COALESCE

--Пример:
DECLARE @VAR INT = 100
SELECT COALESCE@VAR, NULL, NULL, 45)
--Результат: 100

GO
DECLARE @VAR INT
SELECT COALESCE (@VAR, NULL, NULL, 45)
--Результат: 4


--Пример: Выведи Название товара, Цену, и первое известное из списка: Цвет, Цена, Размер, Вес. Если ничего не известно, выведи Звоните!

SELECT
    Name
    ,ListPrice
    ,COALESCE
        (
            Color
            , Size
            , CAST([Weight] AS NVARCHAR(10))
            , N'Звоните!'
        ) AS Property
FROM AdventureWorks2012.Production.Product