select * from
(
select ta.*,(case when (ta.task_type='1' or ta.task_type='2') then (select to_char(b.name) from act_basicinfo b where 1=1 and b.events_uid=ta.rel_uid ) else (select (case when y.HANDLE_APPLYTYPE=0 then '固定资产借用' when y.HANDLE_APPLYTYPE=1 then '固定资产领用' when y.HANDLE_APPLYTYPE=2 then '固定资产维修' when y.HANDLE_APPLYTYPE=3 then '固定资产报废' else '' end) applyName from YLOA_ASSETHANDLEAPPLY y where y.HANDLE_UID=ta.rel_uid) end) activity_name from
(
select t.wftask_uid,t.wfinst_uid,t.task_seq,t.task_name,t.receivedate,t.task_type,(case when t.task_type='1' then '活动审批' when t.task_type='2' then '预算审批' when t.task_type='3' then '固定资产审批' else '' end) type_name,(case when t.task_type='2' then (select b.events_uid from act_resourcesgroup b where b.resgroup_uid=i.rel_uid) else i.rel_uid end)REL_UID from wf_task t left join wf_instance i on(t.wfinst_uid=i.wfinst_uid) where TASK_STATUS=0 {? AND APPROVER_UID=#APPROVER_UID#} {? AND t.task_name LIKE CONCAT(CONCAT('%',#name#),'%') ESCAPE '/' }
) ta
) m where 1=1 {? AND m.activity_name LIKE CONCAT(CONCAT('%',#activity_name#),'%') ESCAPE '/' } order by m.receivedate desc
因为name为nvarchar,而'固定资长报废'为char,所以在case when时需要转化
分享到:
相关推荐
### Oracle中实现datadiff函数 #### 背景与目的 在Oracle数据库中,并未直接提供`DATEDIFF`函数来计算两个日期之间的差异。这与SQL Server等其他数据库系统有所不同,在那些系统中,`DATEDIFF`是一个常用且非常...
MySql 中的 CASE WHEN 语句可以替换 DECODE 函数。MySql 中的 TEXT 等同于 Oracle 中的 LONG 函数。 13. 日期函数 MySql 中的 EXTRACT 函数可以提取日期的年、月、日等信息,而 Oracle 需要使用 TO_CHAR 函数来...
### Oracle自定义函数实现四舍六入五单进的数值修约 在处理数值运算时,数据精度的处理是一项至关重要的工作。特别是在金融、统计等领域,对于数据精度的要求非常高,这就需要我们对数值进行精确的修约处理。本文将...
### 从Oracle生成表的数据字典方法 在Oracle数据库管理中,数据字典是一个非常重要的工具,它能够帮助我们理解数据库结构、表定义以及列属性等详细信息。本篇文章将介绍如何从Oracle数据库中利用COMMENT生成Excel...
根据提供的文件信息,可以看出这是一份关于Oracle数据库面试题及其解答的资料。下面将针对这份材料中的关键知识点进行详细解析。 ### Oracle基本操作与常见面试题解析 #### 1. 处理表间关联的数据(多表连接) ...
Oracle行转列_列转行是指在数据库中将行数据转换为列数据或将列数据转换为行数据的操作。这种操作在实际应用中非常常见,例如在考试成绩统计中,需要将学生的每科成绩从行数据转换为列数据,以便更好地统计和分析...
DB2仅支持`case`表达式,例如`SELECT id ,name ,CASE WHEN integer(flag)=0 THEN ‘假’WHEN integer(flag)=1 THEN ‘真’ELSE ‘异常’END FROM TEST`。 综上所述,ORACLE和DB2在SQL语法上有明显的区别,但都能...
PLSQL支持多种数据类型,包括数值类型(如NUMBER)、字符串类型(如VARCHAR2, CHAR)、日期时间类型(如DATE)、布尔类型(BOOLEAN)以及复合类型(如记录、数组)。 六、PLSQL异常处理 异常处理是PLSQL中非常重要...
根据提供的文件信息,本文将对SQL Server、Oracle与DB2三种主流关系型数据库管理系统中的SQL语句进行详细的对比分析。这不仅有助于理解不同数据库系统之间的差异,也为开发人员提供了跨平台迁移时所需的必要知识。 ...
- `DECODE()`函数:在MySQL中可用`CASE WHEN`表达式替换,如`SELECT CASE WHEN a=b THEN c ELSE d END AS col1 FROM table1;` - `ROW_NUMBER()`窗口函数:MySQL无此功能,但可以利用用户变量模拟实现,如Oracle的`...
- **字符类型**(VARCHAR2、CHAR):用于存储文本字符串。 - **日期时间类型**(DATE):用于存储日期和时间信息。 - **布尔类型**(BOOLEAN):从Oracle 12c开始支持,用于存储TRUE、FALSE和NULL值。 ##### 3. ...
- **Oracle**:数据类型的设置相对简洁,主要包括`NUMBER(p,s)`, `CHAR`, `VARCHAR2`, `DATE`, 和 `LOB`。其中,`NUMBER` 类型可以指定精度和小数位数,灵活性较高;`VARCHAR2` 是最常用的一种变长字符类型。 #### ...
- **数据类型**:Oracle支持多种数据类型,包括数值型(NUMBER)、字符型(VARCHAR2, CHAR)、日期型(DATE)等。 - **创建表**:使用`CREATE TABLE table_name (column_name data_type constraints);`语句。 - **删除表**...
Oracle提供了大量内置函数,如数学函数(如ABS、MOD)、日期时间函数(如SYSDATE、ADD_MONTHS)、字符串函数(如SUBSTR、INSTR)和转换函数(如TO_CHAR、TO_DATE)。例如,`SYSDATE`函数返回当前系统的日期,而`...
- **CASE expression WHEN value THEN result [WHEN ...] [ELSE default] END**: 多条件判断函数,根据expression的值返回不同的结果。 #### 6. 其他常用函数 - **NULLIF(expression1, expression2)**: 如果两个...
- Oracle的`DECODE()`函数在MySQL中可以用`CASE WHEN`语句替换,例如`SELECT CASE WHEN a=b THEN c ELSE d END AS col1 FROM table1`。 - Oracle的窗口函数`ROW_NUMBER() OVER(PARTITION BY col1 ORDER BY col2)`...
(2) 查询 `type` 为 `'A'` 且出现次数大于等于2次的记录。 (3) 查询 `name` 和 `type` 的组合。 ```sql -- (1) SELECT * FROM grades WHERE time = '08-04-45 12:00:00'; -- (2) SELECT name, type FROM grades ...
根据提供的Oracle相关知识点,我们可以详细地探讨一下这些重要的Oracle函数及其用法,这对于数据库管理和查询都是非常有帮助的。 ### 1. CASE 表达式 CASE 表达式是一种非常有用的工具,它允许我们在SQL查询中进行...
### Oracle 触发器案例详解 #### 概述 触发器是数据库中一种特殊类型的存储过程,它在特定的数据操作语言(DML)事件发生时自动执行。Oracle 数据库提供了强大的触发器机制来实现复杂的业务逻辑,比如数据审计、...
- DB2 只提供 `CASE` 表达式实现类似功能,如 `SELECT id ,name ,CASE WHEN integer(flag)=0 THEN ‘假’ WHEN integer(flag)=1 THEN ‘真’ ELSE ‘异常’END FROM TEST` 总的来说,Oracle 和 DB2 在SQL语法上...