04、Oracle转换函数和条件表达式

这篇具有很好参考价值的文章主要介绍了04、Oracle转换函数和条件表达式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.1 【转换函数】

04、Oracle转换函数和条件表达式

1.1.1 【隐式数据类型转换:后台转换】

04、Oracle转换函数和条件表达式

COTT@orcl>select * from emp where empno='7788';

04、Oracle转换函数和条件表达式
隐式转换: 数据类型与默认格式匹配

1.1.2 【显示数据类型转换】

04、Oracle转换函数和条件表达式

1.1.3 【to_char】

1.1.3.1带有日期的 TO_CHAR

04、Oracle转换函数和条件表达式

SCOTT@orcl>select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss am') from dual;

SCOTT@orcl>select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss AM') from dual;

SCOTT@orcl>select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss PM') from dual;

04、Oracle转换函数和条件表达式

SCOTT@orcl>select to_char(sysdate,'Day,"the" ddth "of" Month,yyyy')from dual;

04、Oracle转换函数和条件表达式
双引号:格式中字符串不是格式掩码时

SCOTT@orcl>select to_char(sysdate,'FMDAY,"the" ddth "of" Month,yyyy')from dual;

04、Oracle转换函数和条件表达式

FM :去除开头和结尾的空格(显示紧凑) 都可以用

格式模型:日期格式掩码
04、Oracle转换函数和条件表达式
官方文档位置:
SQL Language Reference -> 5 Functions -> CTRL+F 搜索 to_char ->
TO_CHAR (datetime) -> Format Models -> Table 3-15 Datetime Format Elements

1.1.3.2带有数字的 TO_CHAR

04、Oracle转换函数和条件表达式

SCOTT@orcl>select sal,to_char(sal,'$99,999.00') from emp;

04、Oracle转换函数和条件表达式
注意位数,如果不够长,显示**#**乱码。

SCOTT@orcl>select sal,to_char(sal,'$999') from emp;

04、Oracle转换函数和条件表达式

1.1.4 【to_number】 字符串转换为数字

04、Oracle转换函数和条件表达式

SCOTT@orcl>select to_number('$12,345.00','$99,999.00') from dual;

04、Oracle转换函数和条件表达式

1.1.5 【to_date】 字符串转换为日期

SCOTT@orcl>select * from emp where hiredate>='01-MAY-87';

04、Oracle转换函数和条件表达式

SCOTT@orcl>select * from emp where hiredate>='1987-05-01';


SCOTT@orcl>select * from emp where hiredate>=to_date('1987-05-01','yyyy-mm-dd');

04、Oracle转换函数和条件表达式

1.2 【通用函数】

1.2.1 【NVL 函数】

04、Oracle转换函数和条件表达式

-- 示例
SCOTT@orcl>select ename,sal*12+nvl(comm,0) from emp;

04、Oracle转换函数和条件表达式

SCOTT@orcl>select ename,mgr,nvl(mgr,'No Manager') from emp;

04、Oracle转换函数和条件表达式

SCOTT@orcl>select ename,mgr,nvl(to_char(mgr),'No Manger') from emp;

04、Oracle转换函数和条件表达式

1.2.2 【NVL2 函数】

**NVL2(expr1,expr2,expr3)**如果参数 1 非空 not null,则返回参数 2 的值,否则返回参数 3 的值。

SCOTT@orcl>select ename,sal,comm,sal+nvl(comm,0),nvl2(comm,sal+comm,sal) from emp;

04、Oracle转换函数和条件表达式

1.2.3 【nullif】

**nullif(expr1,expr2)**比较两个表达式是否相同,如果相同,返回 null,如果不同,返回 expr1。

SCOTT@orcl>select nullif(10,10) from dual;

04、Oracle转换函数和条件表达式

SCOTT@orcl>select nullif(10,9) from dual;

04、Oracle转换函数和条件表达式

SCOTT@orcl>select nullif('a','b') from dual;

04、Oracle转换函数和条件表达式

SCOTT@orcl>select ename,job,length(ename) n1,length(job) n2,nullif(length(ename),leng
th(job)) from emp;

04、Oracle转换函数和条件表达式

1.3 【条件表达式】

04、Oracle转换函数和条件表达式

1.3.1 【decode】

04、Oracle转换函数和条件表达式
需求:工作是 **ANALYST **的,工资涨 10%
工作是 **CLERK **的,工资涨 15%
工作是 **MANAGER **的,工资涨 20%
其他的涨 25%

SCOTT@orcl>select empno,ename,job,sal,
  2  decode(job,'ANALYST', sal*1.1,
  3             'CLERK',sal*1.15,
  4              'MANAGER',sal*1.20,
  5               sal*1.25)
  6   new_sal
  7  from emp order by job;

04、Oracle转换函数和条件表达式

**decode **处理空值

SCOTT@orcl>select comm,decode(comm,null,0,comm) from emp;

04、Oracle转换函数和条件表达式

1.3.2 【case when then else end】

04、Oracle转换函数和条件表达式

SCOTT@orcl>select empno,ename,sal,job,
  2  case job when 'ANALYST' then sal*1.1
  3            when 'CLERK' then sal*1.15
  4            when 'MANAGER' then sal*1.2
  5   else sal*1.25
  6   end new_sal
  7  from emp order by job;

04、Oracle转换函数和条件表达式

1.3.2.1【case 第二种形式】

SCOTT@orcl>select empno,ename,sal,job,
  2  case when job='ANALYST' then sal*1.1
  3       when job='CLERK' then sal*1.15
  4       when job='MANAGER' then sal*1.2
  5  else sal*1.25
  6  end new_sal
  7  from emp order by job;

04、Oracle转换函数和条件表达式文章来源地址https://www.toymoban.com/news/detail-414833.html

到了这里,关于04、Oracle转换函数和条件表达式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • postgresql-条件表达式

    2024年02月10日
    浏览(35)
  • Oracle Scheduler中日期表达式和PLSQL表达式的区别

    参考文档: 29.4.5.4 Differences Between PL/SQL Expression and Calendaring Syntax Behavior There are important differences in behavior between a calendaring expression and PL/SQL repeat interval. These differences include the following: Start date Using the calendaring syntax, the start date is a reference date only. Therefore, the schedule is valid as

    2024年02月09日
    浏览(24)
  • 【C++】STL 算法 - transform 变换算法 ② ( 变换规则为 普通函数 | 变换规则为 Lambda 表达式 | 变换规则为 函数对象 | 变换规则为 函数适配器转换的函数对象 )

    transform 算法函数原型 : 下面的函数原型作用是 将 一个输入容器 中的元素 变换后 存储到 输出容器 中 ; 参数解析 : InputIt first1 参数 : 输入容器 的 起始迭代器 ( 包含 ) ; InputIt last1 参数 : 输入容器 的 终止迭代器 ( 不包含 ) ; OutputIt d_first 参数 : 输出容器 的 开始迭代器 , 输出元

    2024年01月21日
    浏览(36)
  • 3、python布尔类型和条件表达式

    使用布尔值进行分支逻辑! Python有一种称为 bool 的变量类型。它有两个可能的值: True 和 False 。 In [1]: 除了直接在代码中使用 True 或 False 之外,我们通常通过 布尔运算符 获取布尔值。这些运算符用于回答是/否问题。让我们来看一些这些运算符。 Operation Description Operation

    2024年01月17日
    浏览(35)
  • Oracle系列之十:Oracle正则表达式

    正则表达式 (Regular expression) 是一种强大的文本处理工具,Oracle数据库自9i版本开始引入了正则表达式支持,可帮助开发者快速而准确地匹配、查找和替换字符串,广泛应用于数据查询、数据分析、数据清洗等领域。 Oracle正则表达式的语法基于Perl语言的正则表达式语法,区分

    2024年02月06日
    浏览(37)
  • oracle中的正则表达式

    ^ 使表达式定位至一行的开头 $ 使表达式定位至一行的末尾 * 匹配 0 次或更多次 ? 匹配 0 次或 1 次 + 匹配 1 次或更多次 {m} 正好匹配 m 次 {m,} 至少匹配 m 次 {m, n} 至少匹配 m 次但不超过 n 次 [:alpha:] 字母字符 [:lower:] 小写字母字符 [:upper:] 大写字母字符 [:digit:] 数字 [:alnum:] 字母数

    2024年02月09日
    浏览(34)
  • 【数据结构】13:表达式转换(中缀表达式转成后缀表达式)

    从头到尾依次读取中缀表达式里的每个对象,对不同对象按照不同的情况处理。 如果遇到空格,跳过 如果遇到运算数字,直接输出 如果遇到左括号,压栈 如果遇到右括号,表示括号里的中缀表达式已经扫描完毕,将栈顶的运算符弹出并输出, 直至遇到左括号(左括号出栈

    2024年02月19日
    浏览(37)
  • 算术表达式:前缀、中缀表、后缀表达式相互转换

    概念: 三者的区别在于运算符相对于操作数的位置有所不同   前缀表达式 前缀表达式是一种没有括号的算术表达式,与中缀表达式不同的是,其将运算符写在前面,操作数写在后面。   中缀表达式  中缀表达式是一种通用的算术或逻辑公式表示方法,操作符以中缀形式处于

    2024年02月05日
    浏览(72)
  • 【Flutter 开发实战】Dart 基础篇:条件循环表达式

    Dart 是一门强大的编程语言,其条件和循环表达式在编写灵活、高效代码中起着关键作用。本文将深入介绍 Dart 中的条件表达式、循环表达式、以及如 for 、 while 、 do...while 、 break 、 continue 等内容,旨在为初学者提供清晰的指导。 Dart 中的条件表达式主要通过 if 语句

    2024年02月01日
    浏览(39)
  • oracle的正则表达式(regular expression)

    当前,正则表达式已经在很多软件中得到广泛的应用,包括Linux, Unix,HP等操作系统,PHP,C#,Java等开发环境,ORACLE则在10G中推出了自己的正则表达式。 Oracle 10g正则表达式提高了SQL灵活性,有效的解决了数据有效性, 重复词的辨认, 无关的空白检测,或者分解多个正则组成的

    2024年02月07日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包