当前位置: 代码迷 >> SQL >> orcal sql基础二 单行函数
  详细解决方案

orcal sql基础二 单行函数

热度:236   发布时间:2016-05-05 13:54:44.0
orcal sql基础2 单行函数

===================单行函数==========================

1? 字符函数

字符大小写转换函数?

????????? 函数?????????????? 功能????????????????????? 用法?????????????????????????????????????? 返回结果

? lower()???????????? 转换为小写????????? lower('John? Smith')?????????????????????? john? smith

?upper()??????????????转换为大写????????? upper('John? Smith')???????????????????? JOHN? SMITH

initcap()????????????? 单词首字母大写??? initcap('JOHN? smith')??????????????????? John? Smith? 每个单词首字母都改 空格区分一个单词

字符处理

? 函数????????????? 功能??????????????????? 用法?????????????????????????????????????????????????????????? 结果

concat()??????????字符串连接????????? concat('Hello','World')????????????????????????????? HelloWorld?? 也可以连接列

substr()????????? 截取子串???????????? substr('HelloWorld',4,3)????????????????????????? low?? 从1开始数

length()????????? 返回字符串长度????length('Hello World')???????????????????????????????11

instr()???????????? 定位子串???????????? instr('Hello World','or')?????????????????????????????8

lpad()???????????? 左侧填充???????????? lpad('Smith',10,'*')????????????????????????????????? *****Smith??????????????????????????????

rpad()???????????? 右侧填充???????????? rpad('Smith',10,'*')?????????????????????????????????Smith*****

trim()????????????? 过滤首尾空格????? trim('?????Mr? Smith??? ')????????????????????????????? Mr? Smith

replace()??????? 替换?????? replace('Mr Smith and?Mr White','Mr','Mrs')?? Mrs Smith and Mrs White

?

数值函数

?

函数?????????? 功能????????????????????? 用法??????????????????????????????? 返回结果

abs()???????? 取绝对值?????????????? abs(-8.45)??????????????????????

round()???? 四舍五入????????????????round(3.1415)??????????????? 3???? 是会四舍五入的

?????????????????????????????????????????????round(3.1415,3)???????????? 3.142

???????????????????????????????????????????? round(314.15,-2)??????????? 300

trunc()????? 截断?????????????????????? trunc(3.1415,3)????????????? 3.141 截断

ceil()???????? 向上取整?????????????????ceil(3.14)??????????????????????? ?4

floor()?????? 像下取整???????????????? floor(3.14)?????????????????????? 3

sign()??????? 判断数值正负?????????? sign(-3.14)???????????????????? -1 零返回0 整数返回1

sin()????????? 三角函数???????????????? sin(3.14)???????????????????????? .001592653

power()??? 幂运算???????????????????? power(4.5,2)????????????????

sqrt()??????? 开平方??????????????????? sqrt(9)??????????????????????????????3

mod()??????? 取模运算??????????????? mod(10,3)???????????????????????? 1? 取余 可对小数取模

exp()???????? 基数为e的幂运算????? exp(1)????????????????????????????? 2.71828183

log()??????????对数运算?????????????????log(4,16.0)?????????????????????? 4?? 计算以四为底16的对数

ln()??????????? 自然对数运算?????????? ln(7)???????????????????????????????? 1.94591015

?

?日期类型

?oracle 内部 存储格式 世纪,年,月,日,小时,分,秒

?缺省格式为? dd-mon-yy

可使用sysdate函数取当前系统时间

日期型数据的算术运算

日期型数据可以直接加或减一个数值,结果仍为日期。

两个日期型数据可以相减,结果为两者相差了多少天

函数??????????????????????????? ? 功能????????????????????????????????????????????????????? ????? 用法?

?

add_months(x,y)?????? 计算在日期x基础上增加y个月后的日期????????????? add_months(sysdate,2)

?

last_day(x)???????????????? 返回当前日期x当月最后一天的日期????????????????? last_day(sysdate)

?

months_between(x,y)? 返回日期x和y之间相差的月数???????????????????????months_between(sysdate,hiredate)?

?

round(x,y)?????????????????? 讲日期x四舍五入到y所指定的日期单位????????????round(sysdate,'month')? 上半个月从此月1

????????????????????????????????? (月或年) 的第一天????????????????????????????????????round(sysdate,'year')???? 号算下半个月从次

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 月开始算

trunc(x,y)??????????????????? 讲日期x截断到y所指定的日期单位(月???????????? trunc(sysdate,'month')

??????????????????????????????????? 或年)的第一天????????????????????????????????????????? trunc(sysdate,'year')

?

next_day(x,y)??????????? 计算指定日期x后的第一个星期几????????????????????? next_day(sysdate,'星期二')

????????????????????????????????? (由参数y指定)对应的日期

?

?

?转换函数?

?

字符串? 日期?? 数字?? 相互转换??

?

???????????????????????????to_number()?????????????????to_date?()??????????????????????????????????????????????????????????????????????????????????

???????????????????????????/??????<?--??????\????????????????/???--->????\?????????????????????????????????

?????????????????????????/????????????????????????\??????????/????????????? ??\????????????

?????????????? 数值型??????????????????????????????字符串??????????????? date型????????????????????????????????????????????????

????????????????????????\????????????????????????/???? ???????\???????<--??/????????????????????????

???????????????????????????\?????-->?????????/???????????????\?????????????/????????????????????

????????????????????????????? to_char()??????????????????? tochar()

?

?

常用日期格式符 =========

格式符???????????????????????? 说明?????????????????????? ?举例

?yyyy???????????????????????? ?年份?????????????????????? 2008

mm??????????????????????????? 用数字显示月份???????? 02

dd????????????????????????????? 当月的第几天???????????28

day??????????????????????????? 星期几???????????????????? 星期五

am/pm?????????????????????? 显示上午/下午????????? 上午

hh/hh12/hh24?????????? 小时?????????????????????? 2:30?? 14:30

mi????????????????????????????? 分钟????????????????????????????? 30

ss??????????????????????????????秒钟???????????????????????? 46

说明 出此之外 日期模式字符串还可以直接出现 _? :? ;? /? 如果要显示其他文本字符串则需要用双引号

括起来;也可以用模式字符串的开头使用"fm"标记以去掉数字前面的零。例如? 'yyyy-mm"月"-dd'

?

数字.字符串 格式符 =========

?

格式符???????????? 说明

9????????????????????表示一位数? 高位如果没有,不显示

0??????????????????? 表示一位数,强制显示0? 高位如果没有值 强制显示0

$??????????????????? 放置一个美元符$

L??????????????????? 放置一个本地货币符? 看机器环境

.???????????????????? 小数点

,????????????????????千位指示符

=============================补充nvl()==========================?

?NVL(eExpression1, eExpression2) 1为空 返回2值 防止空值出现

trim('h' from 'helloword') 输出结果 ellword 去除前后小 'h'?

?

?

?

?

?

?

?

?

?

?

?

?

?