CASE与DECODE 函数的用法 |
发表者:admin分类:数据库2022-12-09 15:24:50 阅读[447] |
CASE与DECODE 函数的用法
SELECT e.EMPLOYEE_ID,
e.FIRST_NAME,
DECODE (e.DEPARTMENT_ID,
10, 'Admin',
20, 'Marketing',
60, 'IT',
80, 'Sales',
100, 'Finance',
'其它部门')
AS 部门,
CASE WHEN e.SALARY > 6000 THEN '高工资' ELSE '低工资' END
AS 工资等级,
CASE
WHEN (SELECT COUNT (e2.EMPLOYEE_ID)
FROM EMPLOYEES e2
WHERE e2.DEPARTMENT_ID = e.DEPARTMENT_ID) > 10
THEN
'部门人员多'
ELSE
'人员少部门'
END
AS 部门人员级别
FROM EMPLOYEES e;
CASE 表达式允许您使用 IF ...然后...SQL 语句中的 ELSE 逻辑,而不调用子程序。有两种类型的 CASE 表达式,简单表达式和搜索表达式。 示例 2-27 中的查询使用简单的 CASE 表达式来显示每个国家/地区代码的国家/地区名称。 示例 2-28 中的查询使用搜索的 CASE 表达式根据与服务年限关联的日期范围显示建议的加薪(15%、10%、5% 或 0%)。 另请参阅: 有关 CASE 表达式的更多信息,Oracle 数据库 SQL 语言参考 Oracle Database PL/SQL 语言参考,了解有关 CASE 表达式的更多信息 示例 2-27 在查询中使用简单的 CASE 表达式 结果: 示例 2-28 在查询中使用搜索的 CASE 表达式 结果: DECODE 函数将表达式与多个搜索值进行比较。只要表达式的值与搜索值匹配,DECODE 就会返回与该搜索值关联的结果。如果 DECODE 找不到匹配项,则返回默认值(如果指定)或 NULL(如果未指定默认值)。 示例 2-29 中的查询使用 DECODE 函数显示三个不同工作的建议加薪。表达式为JOB_ID;搜索值为“PU_CLERK”、“SH_CLERK”和“ST_CLERK”;默认值为薪水。 注意: DECODE 函数的参数可以是任何 SQL 数字或字符类型。Oracle 会在比较之前自动将表达式和每个搜索值转换为第一个搜索值的数据类型。Oracle 会自动将返回值转换为与第一个结果相同的数据类型。如果第一个结果的数据类型为 CHAR,或者第一个结果为 NULL,则 Oracle 会将返回值转换为数据类型 VARCHAR2。 另请参阅: 有关解码功能的信息,Oracle 数据库 SQL 语言参考 示例 2-29 在查询中使用 DECODE 函数 结果: 在查询中使用 CASE 表达式
在查询中使用解码函数
转载请标明出处【CASE与DECODE 函数的用法】。
《www.micoder.cc》
虚拟化云计算,系统运维,安全技术服务.
Tags: | [阅读全文...] |
最新评论