вторник, 26 марта 2013 г.

Как осуществить подстановку значений в выражении на основе правила

-- Заменим в результирующем наборе L, M, H, NULL на 'Low', 'Medium', 'High', ''

SELECT
    Name
    ,ListPrice
    ,CASE Class
         WHEN 'L' THEN 'Low'
         WHEN 'M' THEN 'Medium'
         WHEN 'H' THEN 'High'
         ELSE ''
    END AS Class
FROM AdventureWorks2012.Production.Product

-- Начиная с SQL Server 2012 можно воспользоваться функцией IIF()


SELECT
    Name
    ,ListPrice
    ,IIF (Class = 'L', 'Low',
         IIF (Class = 'M', 'Medium',
         IIF (Class = 'H', 'High',
         IIF (Class = 'L', 'Low', '')))) AS Class
FROM AdventureWorks2012.Production.Product

-- Результат одинаковый