Как использовать CASE, чтобы получить 3 столбца из одного столбца?

У меня есть одна таблица "DataDollar"... и 2 столбца "LineNmbr" и "DollarAmt".

Мне нужно отобразить значения этого столбца как в трех столбцах в зависимости от их значений.

Помогите мне, пожалуйста !

SELECT
 DollarAmt AS
 CASE LineNmbr
    WHEN 19
        THEN  'A-Amt'
    WHEN 20
        THEN   'P-Amt'
    ELSE
          'D-Amt'
  END        
 FROM DataDollar

person Relativity    schedule 01.03.2011    source источник
comment
Почему имена столбцов в кавычках? Предполагая, что типы столбцов взаимозаменяемы, избавление от них должно работать.   -  person Mark Sowul    schedule 01.03.2011


Ответы (1)


Попробуйте использовать три выражения case, по одному для каждого столбца в результирующем наборе:

SELECT
    CASE LineNumber WHEN 19 THEN DollarAmt END AS AAmt,
    CASE LineNumber WHEN 20 THEN DollarAmt END AS PAmt,
    CASE WHEN LineNumber <> 19 AND LineNumber <> 20
        THEN DAmt
    END AS DAmt
FROM DataDollar
person Mark Byers    schedule 01.03.2011