需要查询才能有条件地显示列

时间:2013-01-15 22:51:57

标签: oracle

例如,如果前端可以提供日期,则使用必要的AND关键字添加Date ='someDate',并按Date显示SELECT列。否则,Date列不会显示在条件字符串中,也不会显示在SELECT

就像 如果日期不为空 那么

Select .... Date as Date01 from TableName where ....AND Date01='someDate';

如果Date为null 那么

Select .... from TableName where ..;

如何实现这样的目标?谢谢。

1 个答案:

答案 0 :(得分:3)

如果要返回两个单独的选择列表,则需要两个查询才能执行此操作。

您无法根据是否提供日期隐藏SELECT列表中的列。

如果要包含列和条件,则可以使用case表达式为没有条件的记录提供不同的值。与此类似:

select 
   case when Date01='someDate' 
        then Date 
        else null end as Date01
from TableName
where yourFilters
  or Date01='someDate'