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筛选数据集

Oracle SQL case when 表达式

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

PLSQL条件语句完成员工加薪功能(记录类型+游标case when+if+for update+where current of)

TEST1:请使用函数+plsql完成给员工加薪的功能。 CLERK 加薪 20%; SALESMAN 加薪30%; MANAGER 加薪35% SQL> select * from t; ...

case when 写在where条件中

select datas.id,datas.name,datas.memo,to_char(datas.create_date,'yyyy-mm-dd hh24:mi:ss'),to_char(dat...

SQL__case_when_then_的用法

  • 2013年11月21日 16:46
  • 24KB
  • 下载

mybatis-动态sql-if,choose,when,otherwis,trim,where,set,foreach,test,bind

如果使用JDBC或者其他框架,很多时候你得根据需要去拼装sql,这是一个麻烦的事情。而mybatis提供对sql语句动态的组装能力,而且它只有几个基本的元素,十分简单明了,大量的判断都可以在mybat...

MyBatis-动态SQL的if、choose、when、otherwise、trim、where、set、foreach使用

动态SQL是MyBatis最强大的特性之一。用于实现动态SQL的主要元素如下: 1、if 2、choose、when、otherwise 3、trim、where、set 4、foreach代...

SQL中case when应用及Decimal类型数据的运算

----------------------------------- 理财计算 insert into lsyw.finance select cust_num, cust_cn_nm, acct_...

sql语句case when使用和date_formate()的使用,DATEDIFF(字段1,字段2)获取天数,常用的MYSQL的函数

SELECT cm.id,cm.content,DATE_FORMAT(cm.created_time,'%Y-%m-%d %H:%i:%s') created_time,cm.fabulous_nu...

SQL的case和when的使用方法

Case具有两种格式。简单Case函数和Case搜索函数。 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他...
  • thjnemo
  • thjnemo
  • 2011年11月02日 09:27
  • 205
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle sql 日期 case when where
举报原因:
原因补充:

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