Oracle 转换函数
-- TO_CHAR(date|number {,fmt} {,nlsparams}) fmt:格式内容,返回的字符串是什么格式的,在此处指定;nlsparams:指定国家语言设置参数,设置一些数值中的字符,不同国家不同,默认按当前会话的设置

-- 将日期转换成字符串
-- fm:压缩因转换后字符串中多填充的空格或者数字前面填充的0
select employee_id,to_char(hire_date,'fmDD MONTH YYYY') from employees;
select employee_id,to_char(hire_date,'DD-MM-YYYY') from employees;
-- 特殊字符必须将特殊字符使用英文的双引号,引起来
select employee_id,to_char(hire_date,'YYYY"年"MM"月"DD"日"') from employees;

-- 将数字转换成字符串
select employee_id,salary,to_char(salary,'$999,999.00'),to_char(salary,'L999,999.00') from employees;

-- TO_DATE(char {,fmt} {,nlsparams}) 将字符串转换成日期类型
-- fx:精确匹配,要转换的字符串要严格的按照右边fmt的格式,否则就会报错
select last_name,hire_date
from employees
where hire_date>to_date('2007-09-10','fxYYYY-MM-DD'); -- TO_NUMBER(char {,fmt} {,nlsparams})将字符串转换成数值类型
select to_number('12,345.05','999,999.00') from dual; -- 函数嵌套
-- oracle 可以达到任意深度的函数嵌套,嵌套的计算是从内到外
select last_name,upper(concat(substr(last_name,1,3),'_ZH'))
from employees; -- 通用函数
-- NVL(column|expression1,expression2) 将空值转换成目标值 expression2:如果expression1为空则返回expression2
-- 注:expression1和expression2的类型一定要一致
select last_name,salary,COMMISSION_PCT,(salary*12)+(salary*12*NVL(COMMISSION_PCT,0)) as "All_Salary"
from employees; -- NVL2(expr1,expr2,expr3) 将空格转换为已指定的值 ,如果expr1不为空则返回 expr2,如果expr1为空则返回expr3
-- 注:expr1可以是任意类型,expr2和expr3可以是除LONG以外的任意类型
select last_name,salary,commission_pct,NVL2(COMMISSION_PCT,'SAL+COMM','SAL') as "InCome"
from employees
where DEPARTMENT_ID in (50,80); -- NULLIF(expr1,expr2) 判断expr1和expr2是否相等,如果相等则返回NULL,如果不等则返回expr1
-- 注:expr1和expr2不能直接传入NULL
select LENGTH(first_name) as "expr1",LENGTH(last_name) as "expr2",NULLIF(LENGTH(first_name),LENGTH(last_name)) as "result"
from employees; -- COALESCE(expr1,expr2,expr3,...exprn) 返回表达式中第一个不为空的表达式,如果expr1为空则判断expr2是否为空,如果不为空则返回expr2,否则较验expr3...
-- 如果所有表达式都为空,则返回空;所有表达式都要是统一的数据类型
select last_name,COALESCE(to_char(COMMISSION_PCT),to_char(MANAGER_ID),'No commission and no manager')
from employees; -- CASE expr WHEN expr1 THEN return1
-- [WHEN expr2 THEN return2
-- ...
-- WHEN exprn THEN returnn]
-- ELSE else_expr END
select last_name,job_id,salary,Case job_id when 'IT_PROG' THEN 1.10*salary
when 'ST_CLERK' THEN 1.15*salary
when 'SA_REP' THEN 1.20*salary
ELSE salary END AS "New Salary"
from employees; select last_name,salary,(case when salary<5000 then 'Low'
when salary<10000 then 'Medinum'
when salary<20000 then 'good'
ELSE 'Excellent' END) as "Salary Level"
from employees; -- DECODE(expr,expr1,return1
-- expr2,return2
-- expr3,return3
-- ...
-- default)
select last_name,job_id,salary,decode(job_id,'IT_PROG',1.10*salary,
'ST_CLERK',1.15*salary,
'SA_REP',1.20*salary,
salary) AS "New Salary"
from employees;

Oracle 转换函数的更多相关文章

  1. Oracle转换函数

    ()--转换函数 --数字转换字符串 )||'分' from dual; ||'' from dual; ()--日期转字符串 select to_char(sysdate,'yyyy-mm-dd') ...

  2. ORACLE常用数值函数、转换函数、字符串函数

    本文更多将会介绍三思在日常中经常会用到的,或者虽然很少用到,但是感觉挺有意思的一些函数.分二类介绍,分别是: 著名函数篇 -经常用到的函数 非著名函数篇-即虽然很少用到,但某些情况下却很实用 注:N表 ...

  3. oracle行列转换函数的使用

    oracle 10g wmsys.wm_concat行列转换函数的使用: 首先让我们来看看这个神奇的函数wm_concat(列名),该函数可以把列值以","号分隔起来,并显示成一行 ...

  4. Oracle的学习三:java连接Oracle、事务、内置函数、日期函数、转换函数、系统函数

    1.java程序操作Oracle java连接Oracle JDBC_ODBC桥连接 1.加载驱动: Class.forName("sun.jdbc.odbc.JdbcodbcDriver& ...

  5. oracle日期、转换函数

    转换函数 日期类型转换成字符类型 select to_char(sysdate) s1, --14-3月 -16        to_char(sysdate, 'yyyy-mm-dd') s2, - ...

  6. Oracle 大小写转换函数

    Oracle 大小写转换函数 转大写UPPER 转小写LOWER 测试: select UPPER('Test') as u from dual; select LOWER('Test') as l ...

  7. ORACLE常用数值函数、转换函数、字符串函数介绍

    ORACLE常用数值函数.转换函数.字符串函数介绍. 数值函数: abs(m) m的绝对值 mod(m,n) m被n除后的余数 power(m,n) m的n次方 round(m[,n]) m四舍五入至 ...

  8. Oracle中的转换函数

    Oracle中的转换函数有三个,分别为to_char(),to_date(),to_number() 1.to_char()的用法 格式化当前的日期时间 select sysdate,to_char( ...

  9. oracle之函数-数字,日期,转换,字符串,其他

    -----------------------------oracle数据库函数----------------------------------------数学函数***select abs(-1 ...

随机推荐

  1. shell基础——字符串连接

    #!/bin/sh str1="hello" str2="world" echo str1=$str1, str2=$str2 strconn1=$str1$s ...

  2. [转]Geoserver全面了解

    From:http://www.cnblogs.com/ada-zheng/archive/2013/07/16/3192921.html Geoserver是一个功能齐全,遵循OGC开放标准的开源W ...

  3. paip.svn使用最佳实践

    paip.svn使用最佳实践 作者Attilax ,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog.csdn.net/attilax 1 ...

  4. Android得到一个闹钟在第三方

    收集报警信息 闹铃时间,闹铃备注信息 闹铃引起系统变化的点: 1. Send Notification (正点闹钟能够设置不发送) 2. Play audio 闹铃信息结构体 ClockInfo{ S ...

  5. RSA不对称加密,公钥加密私钥解密,私钥加密公钥解密

    RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作. RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一 ...

  6. 前端开发必备的Sublime 3插件

    Sublime的大名已经无需我介绍了,首先先介绍如何启用插件安装功能: 打开Sublime 3,然后按 ctrl+` 或者在View → Show Console 在打开的窗口里黏贴这个网站上的代码( ...

  7. IE6、7下获得offset值跟其他浏览器不一样问题

    大家都知道,offset是元素的位置坐标,那位置坐标又和文档流有关系.如果position默认不设置的话,其值是static.static是个什么东东呢?下面我详细介绍一下: 语法: position ...

  8. Arcgis Runtime sdk for android 授权

    要下载和安装 ArcGISRuntime SDK for Android,您需要注册开发者账户,进而便拥有了访问所有功能的权限,从而实现开发和测试目的.但是,这种情况下,应用程序中的所有地图都具有水印 ...

  9. HTML8表单验证

    表单验证: 一.非空验证: 1.内容是不是空的. 判断值的长度是不是0.length属性.压缩空格的函数.   2.内容是不是改变了.   二.对比验证: 1.验证两个控件值的关系(相同,大小)   ...

  10. Node.js学习系列1

    概述 最近在刷javascript的技能,觉着nodejs是个不错的入口,作为一个.Net平台的前端工程师学习使用js开发服务端,想想都有点小激动哈哈^_^^_^. 入门 之前开发过ionic,所以对 ...