Sql 在结果中有选择地显示文本或数字
我像下面那样创建sql,当我尝试执行sql时,MONTH列变为空。对于CPPERI=1,它应该显示JAN,但如果我将JAN更改为number,则MONTH列将显示该数字 请帮忙处理这件事。多谢各位Sql 在结果中有选择地显示文本或数字,sql,db2,Sql,Db2,我像下面那样创建sql,当我尝试执行sql时,MONTH列变为空。对于CPPERI=1,它应该显示JAN,但如果我将JAN更改为number,则MONTH列将显示该数字 请帮忙处理这件事。多谢各位 select EGAIT1 as "ACCOUNT NO" ,EATX15 as "DESC",CPYEA4 as "YEAR", (case when CPPERI = 1 then 'JAN' else 0 end) as "MONTH", sum(EGCUAM)as "AMT",EGAIT2
select EGAIT1 as "ACCOUNT NO" ,EATX15 as "DESC",CPYEA4 as "YEAR",
(case when CPPERI = 1 then 'JAN' else 0 end) as "MONTH",
sum(EGCUAM)as "AMT",EGAIT2 as "DEPARTMENT" from FGLEDG
INNER JOIN FCHACC on (EGCONO=EACONO and EGDIVI=EADIVI and EGAIT1 = EAAITM)
INNER JOIN CSYPER on (EGCONO=CPCONO and CPDIVI='TOH' and EGACDT between CPFDAT and CPTDAT)
where EGACDT between '20170101' and '20170131'
and EGAIT1 in ('56010','56020','56030','56040','56050')
and EGAIT2 in ('AH03' ,'AH04' )
group by EGAIT1,EATX15,CPYEA4,CPPERI,CPTX15,EGAIT2
order by EGAIT1
case语句中的两个结果必须返回相同的数据类型。在您的case语句中,when部分返回varchar,else部分返回integer。试试这样的
case when CPPERI = 1 then 'JAN' else '0' end