Exemplo 01

CODE
DECLARE  @TMP TABLE (NU_DOC INT, IC_ACEITO CHAR(1))

INSERT INTO @TMP (NU_DOC, IC_ACEITO, VALOR) VALUES (1,'A')
INSERT INTO @TMP (NU_DOC, IC_ACEITO, VALOR) VALUES (2,'C')
INSERT INTO @TMP (NU_DOC, IC_ACEITO, VALOR) VALUES (3,'')

SELECT    NU_DOC, IC_ACEITO, CASE rtrim(ltrim(IC_ACEITO))
                    WHEN 'A' THEN 'Aceito'
                    WHEN 'C' THEN 'Cancelado'
                    ELSE 'Não avaliado'
                    END
FROM    @TMP


Exemplo 02

CODE
DECLARE  @TAB TABLE (CODIGO VARCHAR(10), MES VARCHAR(10) , VALOR DECIMAL(12,2))
INSERT INTO @TAB (CODIGO, MES , VALOR ) VALUES ('0101', '012003', 415235.25)
INSERT INTO @TAB (CODIGO, MES , VALOR ) VALUES ('0101', '022003', 15235.45)
INSERT INTO @TAB (CODIGO, MES , VALOR ) VALUES ('0101', '032003', 41535.78)
INSERT INTO @TAB (CODIGO, MES , VALOR ) VALUES ('0101', '042003', 41523.20)
INSERT INTO @TAB (CODIGO, MES , VALOR ) VALUES ('0201', '012003', 8564.25)
INSERT INTO @TAB (CODIGO, MES , VALOR ) VALUES ('0201', '022003', 758.45)
INSERT INTO @TAB (CODIGO, MES , VALOR ) VALUES ('0201', '032003', 35.78)
INSERT INTO @TAB (CODIGO, MES , VALOR ) VALUES ('0201', '042003', 23.20)

SELECT * FROM @TAB

SELECT CODIGO,
    SUM(CASE SUBSTRING(MES,1,2) WHEN '01' THEN VALOR ELSE 0 END) AS DIA1,
    SUM(CASE SUBSTRING(MES,1,2) WHEN '02' THEN VALOR ELSE 0 END) AS DIA2,
    SUM(CASE SUBSTRING(MES,1,2) WHEN '03' THEN VALOR ELSE 0 END) AS DIA3,
    SUM(CASE SUBSTRING(MES,1,2) WHEN '04' THEN VALOR ELSE 0 END) AS DIA4
FROM @TAB
GROUP BY CODIGO


SELECT P1.*, (P1.DIA1 + P1.DIA2 + P1.DIA3 + P1.DIA4) AS TOTAL_ANO
FROM (SELECT CODIGO,
    SUM(CASE SUBSTRING(MES,1,2) WHEN '01' THEN VALOR ELSE 0 END) AS DIA1,
    SUM(CASE SUBSTRING(MES,1,2) WHEN '02' THEN VALOR ELSE 0 END) AS DIA2,
    SUM(CASE SUBSTRING(MES,1,2) WHEN '03' THEN VALOR ELSE 0 END) AS DIA3,
    SUM(CASE SUBSTRING(MES,1,2) WHEN '04' THEN VALOR ELSE 0 END) AS DIA4
FROM @TAB P
GROUP BY CODIGO) AS P1





Considerações finais:

Esta é somente um das formas de como o CASE pode ser utilizado.

No exemplo 02 mostra como simular uma consulta referência cruzada através de SQL puro (sei que não muita vantagem com as ferramentas de DW, mas fazer-se-a o que? ohmy.gif ) inspirado no Books Online

Irei acrescentando outros exemplos com o tempo.

E lembrem-se estes exemplos não passam de elocubrações.


Fonte/Autor/link
AUTOR: "Jothaz"


Dúvidas, criticas, contribuições, correções e adições serão bem vindas.