You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PL/SQL Developer中如何过滤CASE语句返回NULL值的记录

解决方案

方法1:通过WHERE子句过滤NULL结果

直接筛选出NEW_UPDATED列不为空的记录,SQL示例:

SELECT
  -- 替换为你需要查询的其他列
  column1, column2,
  CASE 
      WHEN live_date >= SYSDATE - 30 THEN 'New in Last 30 Days'
      WHEN release_date >= SYSDATE - 30 THEN 'Updated in Last 30 Days'
  END AS NEW_UPDATED
FROM your_table_name
WHERE
  CASE 
      WHEN live_date >= SYSDATE - 30 THEN 'New in Last 30 Days'
      WHEN release_date >= SYSDATE - 30 THEN 'Updated in Last 30 Days'
  END IS NOT NULL;

方法2:直接通过日期条件过滤(性能更优)

避免重复执行CASE判断,直接在WHERE子句中写核心筛选逻辑,效率更高:

SELECT
  -- 替换为你需要查询的其他列
  column1, column2,
  CASE 
      WHEN live_date >= SYSDATE - 30 THEN 'New in Last 30 Days'
      WHEN release_date >= SYSDATE - 30 THEN 'Updated in Last 30 Days'
  END AS NEW_UPDATED
FROM your_table_name
WHERE live_date >= SYSDATE - 30 OR release_date >= SYSDATE - 30;

注意点

  • 若live_date和release_date同时满足近30天的条件,CASE语句会优先返回第一个匹配的结果(即'New in Last 30 Days'),与你原逻辑保持一致。
  • 方法2的性能优于方法1,因为数据库只需执行一次日期条件判断,无需重复计算CASE表达式。

内容的提问来源于stack exchange,提问作者ericr817

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 20:55:58