问题
I have one table "DataDollar"...and 2 columns "LineNmbr" & "DollarAmt" in that.
I need to display this column values as in three columns depending upon their values.
Please help me !
SELECT
DollarAmt AS
CASE LineNmbr
WHEN 19
THEN 'A-Amt'
WHEN 20
THEN 'P-Amt'
ELSE
'D-Amt'
END
FROM DataDollar
回答1:
Try using three case expressions, one for each column in the result set:
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
回答2:
select
case LineNmbr when 19 then DollarAmt else null end as 'A-Amt',
case LineNmbr when 20 then DollarAmt else null end as 'P-Amt',
case when (LineNmbr <> 19) and (LineNmbr <> 20) then DollarAmt else null end as 'D-Amt'
from DataDollar
来源:https://stackoverflow.com/questions/5159869/how-to-use-case-to-get-3-columns-from-a-single-column