Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在结果中有选择地显示文本或数字_Sql_Db2 - Fatal编程技术网

Sql 在结果中有选择地显示文本或数字

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

我像下面那样创建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 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