create or replace function getClassTheacher1(id in varchar2)
return varchar2 is str varchar2(2000);
str1 varchar2(2000);
str2 varchar2(2000);
n number(10);
m number(10);
begin
select count(a.userid) into n from bjxx_class_teacher a,bjxx_user b
where a.userid = b.userid AND a.classno = id;
if n = 0 then
str := '未关联老师';
ELSIF n=1 then
select b.truename,e.schoolname into str1,str2 from bjxx_class_teacher a,bjxx_user b,bjxx_school e
where a.userid = b.userid AND a.classno = id AND e.schoolcode = b.school;
str :=CONCAT(str1,'(');
str :=CONCAT(str,str2);
str :=CONCAT(str,')');
ELSE
m :=1;
str :='';
WHILE m<=n LOOP
SELECT c.truename,c.schoolname into str1,str2 FROM (SELECT ROWNUM as num,b.truename,e.schoolname from bjxx_class_teacher a,bjxx_user b,bjxx_school e
where a.userid = b.userid AND a.classno = id AND e.schoolcode = b.school order by b.school) c where num =m;
str :=CONCAT(str,str1);
str :=CONCAT(str,'(');
str :=CONCAT(str,str2);
str :=CONCAT(str,'),');
m :=m+1;
END LOOP;
end if;
str :=RTRIM(str,',');
return str;
end getClassTheacher1;
分享到:
相关推荐
根据提供的文件信息,我们可以归纳出以下几个Oracle数据库中的关键函数及其用法: ### 1. MONTHS_BETWEEN函数 **函数定义与用途:** `MONTHS_BETWEEN(date1, date2)` 函数用于计算两个日期之间的月份数。这个函数...
Oracle函数大致可以分为以下几类: 1. **数学与逻辑函数**:例如,`ABS()`用于返回绝对值,`MOD()`计算两个数相除的余数,`POWER()`用于求幂,`NULLIF()`则用于比较两个表达式,如果相等则返回NULL,`AND`、`OR`和`...
本文将深入探讨Oracle中的几种主要函数类型:单行函数、多行函数以及分组函数,并给出相应的实例来帮助理解。 1. **单行函数** 单行函数在处理每一行数据时返回一个结果。它们分为字符函数、数字函数、日期函数和...
"Oracle常用函数chm版"是一个集合了多种Oracle数据库常用函数的参考资源,主要包含以下几个方面: 1. **数值型函数**:这类函数主要用于处理整数、浮点数等数值类型的数据。例如,`ROUND`函数用于四舍五入,`TRUNC`...
这条语句将`hiredate`字段转换为“星期几, 日-月-年”的格式,并且筛选出所有名字以“AL”开头的员工记录。 #### 2. UPPER() - **功能**:将输入的字符串转换为大写。 - **示例**: ```sql WHERE UPPER(ename) ...
在这个例子中,我们选取了`employees`表中的部分字段,并使用`AVG`函数计算每个员工与他们前后一个具有相同经理的员工的平均薪水。可以看到,当经理ID为100时,Kochhar作为第一个员工,其平均薪水就是他自己的薪水;...
5. 根据给出的星期几返回:NEXT_DAY()函数返回第一个日期后第一个星期几的日期,例如NEXT_DAY('01-SEP-05','FRIDAY')返回第一个日期后第一个星期五的日期。 6. 月份的最后一天:LAST_DAY()函数返回指定日期的月份的...
5. **NEXT_DAY(date, weekday)**: 返回指定日期之后的第一个指定星期几的日期。 ```sql SELECT NEXT_DAY(SYSDATE, '星期一') FROM DUAL; ``` 6. **TRUNC(date)**: 截断日期到指定的精度,如年、月、日等。默认...
- **PERCENT_RANK**:类似于`CUME_DIST`,但返回的是一个0到1之间的值,代表行在其所在组中的百分比位置。 - **RATIO_TO_REPORT(expr)**:表达式值除以该组的总和。 - **ROW_NUMBER**:返回排序组中行的偏移量。 ##...
### Oracle分析函数详解 #### 一、概述 Oracle分析函数是一种强大的工具,它允许用户对分组数据执行复杂的计算,并且能够返回多个结果行。这与传统的聚合函数(如`SUM`、`COUNT`等)形成鲜明对比,后者通常只针对...
- `NEXT_DAY` 返回给定日期后的第一个特定星期几的日期。例如,`NEXT_DAY(SYSDATE, '星期一')` 将返回当前日期后的第一个周一的日期。 4. **LAST_DAY** 函数: - `LAST_DAY` 返回给定日期所在月份的最后一天。这...
本文档旨在深入解析DB2和Oracle数据库中常用函数的异同之处,以便于从一种数据库系统迁移至另一种系统的人员能够快速掌握并适应新的环境。我们将从类型转换函数、时间日期相关的函数以及字符串处理函数三个方面进行...
以下是对Oracle数据库中几个核心函数的详细介绍: 1. **DECODE函数**:DECODE函数在查询中用于条件判断和返回值替换。其基本语法为`DECODE(expression, value1, result1, value2, result2, ..., default_result)`。...
- NEXT_DAY:找到给定日期后的下一个特定星期几。 - TO_CHAR/TO_DATE:将日期时间转换为字符串或将字符串转换为日期时间。 4. **转换函数** - TO_NUMBER:将字符串转换为数值。 - TO_CHAR:将数值、日期或其他...
- `W`: 返回一个月中的第几周。 ```sql SELECT to_char(sysdate, 'W') FROM dual; ``` 5. **日格式** - `DDD`: 返回一年中的第几天。 ```sql SELECT to_char(sysdate, 'DDD') FROM dual; ``` - `DD`: 返回...
在Oracle中,内置函数大致可以分为数学函数、字符串函数、日期时间函数、转换函数、系统信息函数和条件判断函数等几大类。 1. **数学函数**: - ABS:返回一个数的绝对值。 - CEIL:向上取整,返回大于或等于指定...
其中`'DD'`是日期格式的一部分,表示一个月份中的第几天(1到31)。 3. **TO_NUMBER(expression)**: 将字符串表达式转换为数字。这里将步骤2得到的结果转换为数字类型。 **结果**: 此查询返回的是当前日期在本月中...
本文将深入探讨Oracle函数,帮助你从一个爱好者进阶为更高级的数据库专家。 一、数学函数 Oracle数学函数用于执行基本的算术运算,如加、减、乘、除。例如,`ABS()`函数返回一个数的绝对值,`ROUND()`用于四舍五入...
在这个资源中,我们将讨论如何使用 Oracle SQL 来获取星期几、一个月的第几天、一个年的第几天等信息。 一、获取星期几 Oracle SQL 提供了多种方式来获取星期几,下面是一些常见的方法: 1. 使用 TO_CHAR 函数 ...
本文主要探讨的是Oracle 8i版本中的内置函数,这些函数涵盖了数字、日期等多个方面,对于数据库开发和管理具有极大的实用价值。 1. **数字格式元素**: - `G999G999`:根据NLS_NUMERIC_CHARACTER参数设定的分隔符...