在select查询中不能使用if判断输出字段吗?

SELECT 

${if(SQL("BIDB","SELECT SUBSTR(BELONG_UNIT,1,5) as com_code,SUBSTR(T1.BELONG_UNIT,INSTR(T1.BELONG_UNIT,'_')+1,LENGTH(T1.BELONG_UNIT)-INSTR(T1.BELONG_UNIT,'_')) AS UNIT FROM INPUT_CW_LRZX_WH T1 LEFT JOIN INPUT_CW_YSE_WH T2 ON T1.PROFIT_DISPLAY_NAME = T2.PROFIT_CENTER WHERE PROPERTIES = '前台' AND T1.PROFIT_DISPLAY_NAME = '" + comboBox0 + "'",1,1) == '01501','T2.UNIT','T2.PROFIT_CENTER')}

,T2.RATE_BUDGET

FROM INPUT_CW_LRZX_WH T1

LEFT JOIN INPUT_CW_YSE_WH T2

ON T1.PROFIT_DISPLAY_NAME = T2.PROFIT_CENTER

WHERE PROPERTIES = '前台'

AND T1.PROFIT_DISPLAY_NAME = '${comboBox0}'

查询处理是这种

image.png

FineReport WUhu 发布于 2022-11-25 14:44
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
bianchengyanminLv4见习互助
发布于2022-11-25 15:37(编辑于 2022-11-25 15:38)

--你可以看看我下面SQL思路,根据实际情况修改。我想应该可以满足你的需求

with SP AS (

SELECT PROFIT_DISPLAY_NAME,

       SUBSTR(BELONG_UNIT,1,5) as com_code,

       SUBSTR(T1.BELONG_UNIT,INSTR(T1.BELONG_UNIT,'_')+1,LENGTH(T1.BELONG_UNIT)-INSTR(T1.BELONG_UNIT,'_')) AS UNIT 

  FROM INPUT_CW_LRZX_WH T1 

  LEFT JOIN INPUT_CW_YSE_WH T2 ON T1.PROFIT_DISPLAY_NAME = T2.PROFIT_CENTER 

 WHERE PROPERTIES = '前台' 

   AND T1.PROFIT_DISPLAY_NAME = '${comboBox0}'

   )

   

SELECT 

CASE WHEN T3.COM_CODE='01501' THEN T2.UNIT  ELSE T2.PROFIT_CENTER END AS XXX

,T2.RATE_BUDGET

FROM INPUT_CW_LRZX_WH T1

LEFT JOIN INPUT_CW_YSE_WH T2

ON T1.PROFIT_DISPLAY_NAME = T2.PROFIT_CENTER

LEFT  JOIN SP T3 ON T1.PROFIT_DISPLAY_NAME=T3.PROFIT_DISPLAY_NAME

WHERE PROPERTIES = '前台'

AND T1.PROFIT_DISPLAY_NAME = '${comboBox0}'

最佳回答
0
luojian0323Lv7资深互助
发布于2022-11-25 14:46

不建议sql中套sql函数 ,效率低。

最佳回答
0
18740077432Lv6见习互助
发布于2022-11-25 14:50

可以使用if判断查那个字段

  • 3关注人数
  • 388浏览人数
  • 最后回答于:2022-11-25 15:38
    请选择关闭问题的原因
    确定 取消
    返回顶部