oracle sql 日期 case when where

转载 2015年11月19日 15:12:55
public String getMarkets(CrmTransBean crmTransBean) throws AppException{
StringBuilder sb = new StringBuilder();
sb.append("SELECT CA.ID,                                                        ");
sb.append("  CA.NAME,                                                      ");
sb.append("       TO_CHAR( CA.START_C,'yyyy-MM') MONDATE,                       ");
sb.append("       CC.NAME CREATENAME,                                           ");
//活动开始时间转换
sb.append("       CASE                                                                ");
sb.append("        WHEN 1=1                                                           ");
sb.append("         THEN REPLACE(TO_CHAR( CA.START_C,'mm-dd pmhh24:mi:ss'),'am','上午') ");
sb.append("        WHEN 1=1                                                           ");
sb.append("         THEN REPLACE(TO_CHAR( CA.START_C,'mm-dd pmhh24:mi:ss'),'pm','下午') ");
sb.append("        ELSE '未填写'                                                         ");
sb.append("       END STARTTIME,                                                       ");
//活动结束时间转换
sb.append("       CASE                                                               ");
sb.append("        WHEN 1=1                                                          ");
sb.append("         THEN REPLACE(TO_CHAR( CA.END_C,'mm-dd pmhh24:mi:ss'),'am','上午')  ");
sb.append("        WHEN 1=1                                                           ");
sb.append("         THEN REPLACE(TO_CHAR( CA.END_C,'mm-dd pmhh24:mi:ss'),'pm','下午')  ");
sb.append("        ELSE '未填写'                                                        ");
sb.append("       END ENDTIME,                                                        ");
//预约开始时间转换
sb.append("       CASE                                                                 ");
sb.append("        WHEN 1=1                                                            ");
sb.append("         THEN REPLACE(TO_CHAR( CA.OPENDATE,'mm-dd pmhh24:mi:ss'),'am','上午') ");
sb.append("        WHEN 1=1                                                             ");
sb.append("         THEN REPLACE(TO_CHAR( CA.OPENDATE,'mm-dd pmhh24:mi:ss'),'pm','下午') ");
sb.append("        ELSE '未填写'                                                          ");
sb.append("       END OPENTIME,                                                         ");
//预约结束时间转换
sb.append("       CASE                                                                   ");
sb.append("        WHEN 1=1                                                              ");
sb.append("         THEN REPLACE(TO_CHAR( CA.CLOSEDDATE,'mm-dd pmhh24:mi:ss'),'am','上午') ");
sb.append("        WHEN 1=1                                                               ");
sb.append("         THEN REPLACE(TO_CHAR( CA.CLOSEDDATE,'mm-dd pmhh24:mi:ss'),'pm','下午') ");
sb.append("        ELSE '未填写'                                                            ");
sb.append("       END CLOSETIME,                                                          ");

sb.append("       CASE                                                          ");
sb.append("          WHEN CA.SORT_C = '年度钻石年会' OR CA.SORT_C = 'PE类合伙人年会'    ");
sb.append("           THEN 'Y' ELSE 'N'                                         ");
sb.append("             END FC_CANBOOK,                                         ");
sb.append("       CASE                                                          ");
sb.append("          WHEN CA.END_C < SYSDATE                                    ");
sb.append("           THEN '已结束' ELSE '未结束'                                   ");
sb.append("             END STATE,                                              ");
sb.append("       CASE                                                          ");
sb.append("          WHEN CA.CREATEDATE > SYSDATE-7                             ");
sb.append("           THEN 'Y' ELSE 'N'                                         ");
sb.append("             END ISNEW,                                              ");
sb.append("       CASE                                                          ");
sb.append("          WHEN CA.END_C > SYSDATE AND CA.CLOSEDDATE > SYSDATE        ");
sb.append("           THEN 'Y' ELSE 'N'                                         ");
sb.append("             END ISFIRST                                             ");
sb.append(" FROM CAMPAIGN  CA                                        ");
sb.append(" JOIN CCUSER  CC                                    ");
sb.append(" ON CA.CREATEBYID = CC.ID                                        ");
sb.append(" WHERE 1=1                                                       ");
sb.append("     AND ((                                                          "); 
sb.append("          CC.NAME != '数据交互用户' AND CA.ZHUANGTAI IN('已完成','总部市场部批准','客服项目经理批准','活动结果已通过审核','活动已提交,但审核未通过','未开始','进行中','开放预约','结束预约')  ");
sb.append("     AND CA.START_C IS NOT NULL AND CA.END_C IS NOT NULL AND CA.PITCH_AREA IS NOT NULL                                                            ");
sb.append("          AND (CA.RANGE_NEW LIKE '%"+crmTransBean.getBranchname()+"%' OR CA.RANGE_NEW LIKE '%全国%')                                                    ");
sb.append("         )                                                                                                               ");
sb.append(" OR (                                                                                                                ");
sb.append("          CC.NAME = '数据交互用户' AND CA.PUBLISH_STATUS = '已发布' AND CA.ZHUANGTAI != '活动无效'                                ");
sb.append("          AND ( CA.BRANCH LIKE '%"+crmTransBean.getBranchname()+"%' OR CA.BRANCH LIKE '%全国%') ");
sb.append("        ))                                                                                                                ");
if(!"".equals(crmTransBean.getSearch()) && null != crmTransBean.getSearch()){
sb.append(" AND CA.NAME LIKE '%"+crmTransBean.getSearch()+"%'                                                                    ");
}
if(null != crmTransBean.getIsfirst() && crmTransBean.getIsfirst().equals("Y")){
sb.append(" AND (CASE                                                                                                             ");
sb.append("          WHEN CA.END_C > SYSDATE AND CA.CLOSEDDATE > SYSDATE                                                          ");
sb.append("           THEN 'Y' ELSE 'N'                                                                                           ");
sb.append("             END )='Y'                                                                                                 ");
}
if(null != crmTransBean.getIsfirst() && crmTransBean.getIsfirst().equals("N")){
sb.append(" AND (CASE                                                                                                             ");
sb.append("          WHEN CA.END_C > SYSDATE AND CA.CLOSEDDATE > SYSDATE                                                          ");
sb.append("           THEN 'Y' ELSE 'N'                                                                                           ");
sb.append("             END )='N'                                                                                                 ");
}
if(null != crmTransBean.getMondate1() && !"".equals(crmTransBean.getMondate1()) && !"".equals(crmTransBean.getMondate2()) && null != crmTransBean.getMondate2()){
sb.append(" AND TO_CHAR(CA.START_C, 'yyyy-MM') IN ('"+crmTransBean.getMondate1()+"','"+crmTransBean.getMondate2()+"')             ");
}
if(null != crmTransBean.getMondate1() && !"".equals(crmTransBean.getMondate1()) && ("".equals(crmTransBean.getMondate2()) || null == crmTransBean.getMondate2())){
sb.append(" AND TO_CHAR(CA.START_C, 'yyyy-MM') IN ('"+crmTransBean.getMondate1()+"')             ");
}
sb.append("ORDER BY START_C DESC");
return sb.toString();
}

ORACLE SQL开发where子句之case-when

ORACLE SQL开发where子句之case-when筛选数据集
  • www_xue_xi
  • www_xue_xi
  • 2017年05月25日 16:47
  • 852

oracle where 条件中用case

select substr(xoq.item,2,5) model from xwp_out_quantity xoq where xoq.vendor='&s_vendor' and (cas...
  • zhangdaiscott
  • zhangdaiscott
  • 2011年10月18日 18:12
  • 18165

SQL/PLSQL:在where条件中写case when和decode

代码示例: SELECT fp.ka,fp.* FROM BJRC_CKFP FP WHERE 1 = 1 AND fp.ka = ( CASE WHEN '&口岸' IS NOT N...
  • crzzyracing
  • crzzyracing
  • 2017年03月14日 14:21
  • 1065

sql中的where后面使用case when

有这样一段sql文。 select B.bCol_1,B.bCol_2,C.cCol_1 from TBL_B B left join TBL_C C on B.bCol_Key = C.cCo...
  • zunguitiancheng
  • zunguitiancheng
  • 2013年06月08日 03:35
  • 3606

在SQL的查询条件中使用case when取数据

在SQL的查询条件中使用case when取数据堪称SQL里的ifelse用法第一步的id是业务信息的id,除第一步外,步骤id最大的表示当前步骤,每次取当前步骤id存入意见表中,例如:select ...
  • HowCanYouDoIt
  • HowCanYouDoIt
  • 2016年06月08日 16:54
  • 4864

sql:case when的各种用法及怎么把case when放在where里面作为条件表达式

一般用法1 select  (case when 1=2 or 'a' like '%b%' then 'a' when 1=4 or 'b' in ('b','bb') then 'b' e...
  • qq_34110755
  • qq_34110755
  • 2018年01月04日 15:36
  • 202

SQLServer2008 在where条件中使用CASE WHEN

create table #temp(    id int identity(1,1),    name varchar(20),    startYear int,    startMonth in...
  • qianliangjiexialing
  • qianliangjiexialing
  • 2016年03月11日 14:49
  • 4167

SQL Server和Oracle中case when then 的用法及when like 的使用

在日常开发中容易遇到一种情况,就是数据库所存数据与页面显示不一致,需要进行转换,但是又不想在程序中写代码判断转换,这时候就可以用的case....when...then...进行判断显示,而在有些时候...
  • suxuelian
  • suxuelian
  • 2016年07月21日 00:36
  • 4557

Oracle SQL case when 表达式

Oracle SQL case when 表达式
  • Seandba
  • Seandba
  • 2017年06月01日 15:03
  • 857

sql语句中日期型转成字符型,日期比较常出现错误总结和case when的使用

工作了一天,把今天所做的一些东西,以及所接触到和所学到的新知识记录下来。 sql语句中对日期类型,将其转成指定的字符型格式...
  • scqdscy1994
  • scqdscy1994
  • 2016年11月07日 19:59
  • 1455
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle sql 日期 case when where
举报原因:
原因补充:

(最多只允许输入30个字)