小编aaa*_*aaa的帖子

您可以在select命令中创建一个case语句来评估两个不同的表字段吗?

SELECT HQRH_BADGENO,
       HQRH_SHIFT,
       HQBD_BADGENAME,
       HQRH_DISCRRECONCILE,
       HQRH_ADJUSTAMOUNT,
       HQRH_DISCRADJUSTMENT,
       CASE HQRH_DISCRRECONCILE
         WHEN 'HQRH_DISCRRECONCILE <0' THEN
          'HQRH_ADJUSTAMOUNT'
         WHEN 'HQRH_ADJUSTAMOUNT>0' THEN
          'HQRH_ADJUSTAMOUNT'
         WHEN 'HQRH_DISCRADJUSTMENT<0' THEN
          'HQRH_DISCRADJUSTMENT * (-1)'
         ELSE
          'HQRH_DISCRRECONCILE>0'
       END
  FROM HQ_CASHRECONCILEHEADER, HQ_BADGE
 WHERE HQ_CASHRECONCILEHEADER.HQRH_PLAZANO = HQ_BADGE.HQBD_PLAZANO
   and HQ_CASHRECONCILEHEADER.HQRH_BADGENO = HQ_BADGE.HQBD_BADGENO
   AND (HQ_CASHRECONCILEHEADER.HQRH_OPERATIONALDATE =
       TO_DATE(:dtstart, 'DD/MM/YYYY'))
   AND (HQ_CASHRECONCILEHEADER.HQRH_PLAZANO = :plazano)
Run Code Online (Sandbox Code Playgroud)

我需要将case/if else条件应用于上面的select语句.我试过但是我收到了一个错误.那个错误是

ORA : 00923: from keyword not found where expected
Run Code Online (Sandbox Code Playgroud)

实际上我想应用这样的if-else条件:

if colA -ve then                             ' here colA = excess
    if colB +ve then paid = colB             ' here colB = paid …
Run Code Online (Sandbox Code Playgroud)

sql database oracle ora-00923

2
推荐指数
1
解决办法
3182
查看次数

标签 统计

database ×1

ora-00923 ×1

oracle ×1

sql ×1