2.格式化数字(to_char()函数)

select to_char(1210.73, '9999.9') from dual;---结果:1210.7
select to_char(1210.73, '9,999.99') from dual;---结果:1,210.73
select to_char(1210.73, '$9,999.99') from dual;---结果:$1,210.73
select to_char(21, '000099') from dual;--结果:000021

to_char函数特殊用法

select sysdate from dual;--结果:2017/9/18 14:19:45
--每周第几天
select to_char(sysdate,'d') from dual;--结果:2
--每月第几天
select to_char(sysdate,'dd') from dual;--结果:18
--每年第几天
select to_char(sysdate,'ddd') from dual;--结果:261
--每年第几周
select to_char(sysdate,'ww') from dual;--结果:38
--每年第几月
select to_char(sysdate,'mm') from dual;--结果:09
--每年第几季
select to_char(sysdate,'q') from dual;--结果:3
select to_char(sysdate,'yyyy') from dual;--结果:2017

3.查找指定字符所在位置(instr()函数)

instr函数返回要截取的字符串在源字符串中的位置。
语法如下: instr( string1, string2 [, start_position [, nth_appearance ] ] )

参数说明:
string1 源字符串,要在此字符串中查找。
string2 要在string1中查找的字符串.
start_position 代表string1 的哪个位置开始查找。此参数可选,如果省略默认为1. 字符串索引从1开始。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引。
nth_appearance 代表要查找第几次出现的string2. 此参数可选,如果省略,默认为 1.如果为负数系统会报错。

注意:
如果String2在String1中没有找到,instr函数返回0.

select instr('abc','a') from dual;    -- 返回 1 
select instr('abc','bc') from dual; -- 返回 2
select instr('abc abc','a',1,2) from dual; -- 返回 5
select instr('abc','bc',-1,1) from dual; -- 返回 2
select instr('abc','d') from dual; -- 返回 0

注:也可利用此函数来检查String1中是否包含String2,如果返回0表示不包含,否则表示包含。

转载自:http://www.cnblogs.com/toowang/p/3781480.html1.处理小数点位数的几个oracle函数():1.取四舍五入的几位小数select round(1.2345, 3) from dual;结果:1.2352. 保留两位小数,只舍select trunc(1.2345, 2) from dual;结果:1.23select trunc(1.2399, 2
round(45.926,2)---将前一数保留 指定 的小数位,并四舍五入(45.93),假如 指定 位是负数则意为在 小数点 左边保留 指定 位,如round(45.923,-1)=50,rount(45.923,0)=46,round(45.93,-2)=0,round(55.93,-2)=100 trunc(45.926,2)---同上,得不四舍五入(45.92) mod(1600,300)---求余...
工作中遇到的 Oracle 数据库字段 格式化 问题,在此记录 保留两位小数主要分为两种情况: 1. 数字 保留两位小数;( 小数点 左侧 数字 可能比较大,比如1234567890.12) 2.百分比保留两位小数;( 小数点 左侧 数字 数字 小于等于100,比如98.76%)现针对 Oracle 数据库做以下示例:在开始之前,先介绍一下 Oracle 函数 大全中的转换 函数 to_char( )TO_CHAR(x[[,c2],C3
一、ROUND(A/B,2) 函数 ROUND() 函数 是会将计算结果进行四舍五入的,如果所需要的值需要进行四舍五入,就可以选择这个 函数 ,可以有一个参数,也可以有两个参数;如果有两个param,第一个是你的计算表达式,第二个是需要保留的小数 位数 。例子如下: SELECT ROUND(2/3, 2) RESULT FROM DUAL 二、TRUNC(A/B,2) 函数 TRUNC() 函数 是不会将计算结果进行四舍五入的,如果所需要的值不需要进行四舍五入,就可以选择这个 函数 ,可以有一个参数,...
功能: 计算截尾到y位小数的x值. y缺省为0,结果变为一个整数值.如果y是一个负数,那么就截尾到 小数点 左边对应的位上.trunc(sysdate)=to_date('20121231','yyyymmdd') 。 trunc 函数 可用于截取日期时间 用法:trunc(字段名,精度) 具体实例: 在表table1中,有一个字段名
你可以使用 Oracle 的 INSTR 函数 查找 字符 串中的 数字 。INSTR 函数 用于返回一个 字符 串中 指定 字符 串的位置。 下面是使用 INSTR 函数 查找 字符 串中的 数字 的示例: ```sql SELECT INSTR('abc123def456', '123') AS position FROM dual; 这将返回 数字 "123" 在 字符 串 "abc123def456" 中的位置,结果为 4。 如果你要 查找 字符 串中所有的 数字 ,你可以使用正则表达式配合 INSTR 函数 来实现: ```sql WITH data AS ( SELECT 'abc123def456' AS str FROM dual SELECT REGEXP_SUBSTR(str, '[[:digit:]]+', 1, LEVEL) AS number FROM data CONNECT BY LEVEL <= REGEXP_COUNT(str, '[[:digit:]]+'); 这将返回 字符 串 "abc123def456" 中的所有 数字 ,结果为 "123" 和 "456"。 希望这个回答能够帮助到你!如果你还有其他问题,请随时提问。