在sql语句中实现类似三元判断的功能

36 篇文章 0 订阅
9 篇文章 0 订阅

 业务场景:判断字段是否为空,为空赋值当前时间

case when MO.STOP_TIME is NULL then sysDate else MO.STOP_TIME end) >= TO_DATE ('2017-07-12', 'yyyy-mm-dd hh24:mi:ss'

SELECT
  MO.VISIT_SN,
  ROW_NUMBER () OVER (ORDER BY MO.ORDER_TIME ASC) AS row_flag,
  --行号标识 
  MO.ORDER_SN,
  MO.DRUG_NAME,
  MO.MEDICINE_TYPE_NAME,
  MO.MEDICINE_FORM,
  MO.TOTAL_DOSAGE,
  MO.ROUTE_NAME,
  MO.TEMPORARY_FLAG,
  MO.MEDICINE_FREQ_NAME,
  MO.ORDER_PERSON_NAME,
  MO.ORDER_DEPT_NAME,
  TO_CHAR (
    MO.ORDER_TIME,
    'yyyy-mm-dd hh24:mi:ss'
  ) AS ORDER_TIME,
  TO_CHAR (
    MO.STOP_TIME,
    'yyyy-mm-dd hh24:mi:ss'
  ) AS STOP_TIME,
  MV.REGION_NAME,
  TO_CHAR (MO.ORDER_TIME, 'hh24:mi') AS showDate,
  --展示时间 
  TO_CHAR (MO.ORDER_TIME, 'yyyy-mm-dd') AS drugDate,
  MO.DAYS --用药天数 
FROM
  C_MEDICATION_ORDER MO
LEFT JOIN C_MEDICAL_VISIT MV ON MV.VISIT_SN = MO.VISIT_SN
WHERE
  MO.VISIT_SN = 999995
AND MO.DELETE_FLAG = '0'
AND MO.TEMPORARY_FLAG = '1'
AND (case when MO.STOP_TIME is NULL then sysDate  else MO.STOP_TIME end)  >= TO_DATE ('2017-07-12', 'yyyy-mm-dd hh24:mi:ss')
--AND MO.STOP_TIME >= TO_DATE ('2010-07-12', 'yyyy-mm-dd hh24:mi:ss')
AND MO.ORDER_TIME <= TO_DATE ('2027-07-19', 'yyyy-mm-dd hh24:mi:ss')
AND MV.VISIT_TYPE_CODE IN ('03')
ORDER BY
  MO.ORDER_TIME DESC

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值