oracle中函数用法(oracle常用函数大全)

http://www.itjxue.com  2023-01-28 12:02  来源:未知  点击次数: 

Oracle中nvl函数的用法和作用是什么?

用法:查询不相等数据

功能:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值

用法:如果是空值就替换成另一个值如nvl(字段,‘x’)字段值等于null就这个函数得到的结果就是'x',一般用于存在空值比较的情况下,比如字段a与字段b都是int型,其中一个等于null另一个为非空值,你使用ab是不成立的。

使用此条件查询你将丢失这条本来不相等的数据,可以如此用法nvl(字段,-1)nvl(字段,-1),这样就可以得到想要查询的数据,当然查询数据的前提是此字段值不能有-1值才能用这种写法

功能:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,例:nvl(yanlei777,0) 0NVL(yanlei777, 0) 的意思是 如果 yanlei777 是NULL, 则取0值通过查询获得某个字段的合计值,如果这个值为null将给出一个预设的默认值。

Oracle函数的使用

接收字符返回字符或数值时可以使用dual伪表

1、把小写字符转换成大写

select supper(“smi”) form dual

2、把大写转换成小写

lower(“SMI”)

3、首字母大写

initcap(“smi”)

4、字符串的连接可以使用concat,也可以使用? ? 建议使用

concat(“hello”“world”) 结果为helloworld

5、字符串的截取,使用substr,第一个参数为字符串,第二个参数是索引,第三个参数结束索引(开始索引使用0和1效果一样)

substr(hello,0,3) 结果为hel

6、获取字符串长度

length(“hello”)

7、字符串替换,第二个参数为被替换的字符串,第三个是替换的字符串

replace(“hello”,“l”,“x”) 结果为hexxo

1、四舍五入函数ROUND()

默认取整,可以指定保留位数

round(12.523)? 结果为13

round(12.537,2) 结果为12.54

2、取整TRUNC

默认全部去掉小数,可以指定位数

trunc(12.789) 结果为12

3、取余数MOD

mod(10,3) 结果为1

oracle中提供了很多和日期相关的函数,包括日期的加减

日期 - 数字 =日期

日期 - 日期 = 数字(天)

1、如:查询员工进入公司的走数

? (sysdate - 入职日期)/7

注:当前日期查询select sysdate form dual

2、查询所有员工进入公司的月数

获取两个时间段的月数使用months_between(sysdate,入职日期)

3、获取几个月后的日期:add_months()

如:获取员工三个月后的日期

add_months(sysdate,3)

4、如求出下星期一是什么时候

指定给出下次某日期数next_date()

next_date(sysdate,“星期一”)

5、求日期的最后一天last_day()

求出本月的最后一天

last_day(sysdate)

1、to_char字符串转换函数

如:将所有员工的入职日期的年、月分开

注:在划分时需要通配符

年:yyyy? 月:mm? 日:dd

时:HH 分:mi? 秒:ss

定义时间格式

to_char(sysdate,“yyyy-mm-dd HH24:mi:ss”)

在10以下的月数前面会默认加上前导零,去除加上fm

to_char(sysdate,“fmyyyy-mm-dd HH24:mi:ss”)

to_char还可以给数字做格式化

如将员工的工资按三位“,”分隔

to_char(工资,“99,999”) 9代表数字

如果想在钱上加上国家符号

美元使用

中文使用l

to_char(工资,“99,999”)

to_char(工资,“l99,999”)

2、to_number数值转换函数,将字符串转换成数值

to_number(“10”) +to_number(“10”)

3、to_date日期转换函数,将字符串数据转换成日期类型

to_date(“1997-05-12”,“YYYY-mm-dd”)? 1997/05/12

1、空值处理 nvl

如果在查询的时候存在空值的情况可以使用

nvl(comm,0) 当comm的列值为空时,用0代替

2、decode函数

该函数类似于if ...else if ...else

语法:decode(列名/值,search1,result1,search2,result2,default)

decode(中国,中国,我是中国,美国,我是美国,其他)

如果为中国返回我是中国,为美国返回我是美国,为其他字符则返回其他。

3、case when 与decode差不多

语法 case when city=中国 then 我是中国

? ? ? ? ? ? ? when city=美国 then 我是美国

? ? ? ? ? ? ? ? else 其他

oracle substr函数用法

substr Oracle中的截取字符串函数。

字符串值:start_position,截取字符串的初始位置, Number型,start_position为负数时,表示从字符串右边数起。length截取位数,Number型,其中,length为可选,如果length为空,则返回start_position后面的所有字符。从start_position开始,取出length个字符并返回取出的字符串。

输出结果

The original string str1 is:

Heterological paradoxes are persistent.

The substring str1 copied is: logical

The default substring str3 is:

Heterological paradoxes are persistent.

which is the entire original string.

}

(责任编辑:IT教学网)

更多

推荐人物新闻文章