如何对SQL查询结果中的字段进行条件判断,然后将判定结果放置在新的一列中

SQL语句书写.zip

详细描述详见附件

yzm742603 发布于 2022-10-19 11:04 (编辑于 2022-10-19 11:05)
1min目标场景问卷 立即参与
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
3
RiveryLv5中级互助
发布于2022-10-19 11:06(编辑于 2022-10-19 11:11)

用case when咯

----

SELECT A.ACCOUNTCODE,A.PERIODV,A.NOV,A.YEARV,A.LOCALCREDITAMOUNT,A.LOCALDEBITAMOUNT,A.EXPLANATION,A.PK_VOUCHERTYPEV,A.ASSID,A.PK_DETAIL,A.PK_ACCOUNTINGBOOK,A.PK_ORG,A.PK_ACCASOA,

 B.NAME AS 财务组织,

 C.NAME AS 凭证类别,

 D.FILE_ID AS 数据交换平台传递编号,F.NAME as 收支项目,G.NAME as 部门辅助,H.NAME as 预算机构,I.NAME AS 机型辅助,

 case when I.NAME in ('A320-200','A319-200') then '客机' else '货机' end as 机型,

 case when length(nvl(D.FILE_ID,''))=16 then '成本结算系统传递' else '收入结算系统传递' end  as 系统

FROM GL_DETAIL A

LEFT JOIN (SELECT B.PK_CORP,B.NAME FROM ORG_CORP B WHERE B.NAME='A公司')B ON B.PK_CORP=A.PK_ORG

LEFT JOIN (SELECT C.PK_VOUCHERTYPE,C.NAME from  BD_VOUCHERTYPE C )C ON C.PK_VOUCHERTYPE=A.PK_VOUCHERTYPEV

LEFT JOIN (SELECT D.PK_DETAIL,D.FILE_ID from V_GL_DETAIL D)D ON D.PK_DETAIL= A.PK_DETAIL

LEFT JOIN  GL_DOCFREE1 E on  A.ASSID=E.ASSID 

LEFT JOIN  BD_INOUTBUSICLASS F ON  E.F8=F.PK_INOUTBUSICLASS

LEFT JOIN  ORG_DEPT  G ON  E.F1=G.PK_DEPT

LEFT JOIN  ORG_DEPT  H ON  E.F26=H.PK_DEPT

LEFT JOIN  BD_DEFDOC  I ON  E.F22=I.PK_DEFDOC

WHERE  YEARV='2022' and PERIODV='09' and NOV='95' AND  C.NAME='成本凭证'

  • yzm742603 yzm742603(提问者) 那如果我想对CASE when 新增加的列“系统”里的数据再进行条件判断呢,我这样写报错了 CASE WHEN instr(D.FILE_ID,\'CBYT\')>0 and 系统=\'成本结算系统\' then \'计提\' else \'调整\' end as \"计提/调整\",显示“系统”标识符无效
    2022-10-21 13:01 
  • Rivery Rivery 回复 yzm742603(提问者) 那你这个得在外面再嵌套一层select或者用and length(nvl(D.FILE_ID,\'\'))=16,不要直接用系统字段,用系统字段的判断条件
    2022-10-21 13:34 
  • yzm742603 yzm742603(提问者) 回复 Rivery 嵌套在外面要怎么写?
    2022-10-21 14:27 
  • Rivery Rivery 回复 yzm742603(提问者) select case when from (select .........)
    2022-10-21 14:33 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-10-19 11:07

外嵌一层 SQL 呗

例如

SELECT A.*,(CASE WHEN ACCOUNTCODE='XXXX' THEN  'jjjj' WHEN ACCOUNTCODE='ttt' THEN  'ppp' ELSE ACCOUNTCODE END)  AS 'NEW' FROM (现在的SQL) A

  • 1关注人数
  • 248浏览人数
  • 最后回答于:2022-10-19 11:11
    请选择关闭问题的原因
    确定 取消
    返回顶部