Oracle TRIM函数是可怜广阔的函数。相当一部分知识点涉及到对Oracle常见函数的试验。

TRIM e.g

DWEYE
配合“BOTH”、“TRAILING”和“LEADING”三只参数使用效能如下,与之前演示类似。看结果,不赘述。
gloria@www.jbxue.com> select trim (both ‘x’ from ‘xxxxDWEYExxxx’)
“TRIM e.g.” from dual;

ADD_MONTH

01-JAN-14

3. NEXT_DAY函数

NEXT_DAY返回在指定日期后下一样不成出现星期几的日子。其语法为NEXT_DAY(start
date,day of the week)。函数计算以start date之后day of the
week下一样浅出现的日子。day of the
week可以是字符值或者整数值。其中,字符值至少是星期天名称的先头三个字符,例如,星期日得代表为sun,sund,sunda或者Sunday。对于整数,1表示星期日,2象征星期一,以此类推。

例如:19-SEP-2014是周五

SQL> select next_day(’19-SEP-2014′,5) from dual;

e.g.

DWEYE
利用RTRIM和LTRIM函数时的注意事项:“xy”不表示所有“xy”字符串进行匹配,而是发现任意的字符“x”或字符“y”均开去除操作。
7.小结
在感受Oracle函数带来福利之而,建议对每一个经常因此函数都追本溯源地探索一下,也许在尝试后你见面发现:哦,原来大家常用到这些方法就是那真实功能的大海同谷。
以下是另网友的互补:
一旦 trim(‘字符1’ from ‘字符串2’) ,字符1只会是单个字符。

  1. trim()删除字符串两边的空格。
  2. ltrim()删除字符串左边的空格。
  3. rtrim()删除字符串右边的空格。
  4. trim(‘字符1’ from ‘字符串2’)
    分别由字符2串的片度开始,删除指定的字符1。
  5. trim([leading | trailing | both] trim_char from
    string) 从字符串String中去指定的字符trim_char。
    leading:从字符串的腔起去。
    trailing:从字符串的尾巴开始去。
    borth:从字符串的一定量限去。
  6. tim()只能去半角空格。
    For example:
    trim(‘ tech ‘) would return ‘tech’;
    trim(‘ ‘ from ‘ tech ‘) would return ‘tech’;
    trim(leading ‘0’ from ‘000123’) would return ‘123’;
    trim(trailing ‘1’ from ‘Tech1’) would return ‘Tech’;
    trim(both ‘1’ from ‘123Tech111’) would return ’23Tech’;
    oracle中的trim函数

Oracle中之trim函数是为此来删除给定字符串或者给定数字中之头部要尾部的给定字符。
trim函数具有如下的款式

trim([leading/trailing/both][配合配字符串或数值][from][欲被处理的字符串或数值])

这边要指明了leading表示从今去头部匹配的字符串,如果指明了trailing表示于去尾部匹配的字符串,如果指明了both,或者不指明任何位置,则两端都用为删

倘若无指明任何匹配字符串或数值则当是空格,即除去前面或者后面的空格。

trim函数返回的种类是varchar2

下面是一些例证:

截去了数字7500底后边的两个0

SQL> select trim(0 from 7500) from dual;

TRIM

—-

75

下的例子截去了’ 中秋八月中’前后的少个’中’字

SQL> select trim(‘中‘ from ‘中秋八月面临‘) as 诗 from dual;

——————

秋八月

下的例子截去了’ 半夜间二复半’前面的一个’半’字

SQL> select trim(leading ‘半‘ from ‘半夜二重新半‘) as 诗 from dual;

————————

夜里二重复半

ADD_MONTH

01-APR-14

SQL> select add_months(‘1-MAR-2014’,2.9) from dual;

在oracle数据库屡遭,trim一般都是因此在剔除字符串两度的空格。实际上,trim也得以为此来删除字符串两止的指定字符。并且trim指定删除的字符串只能是单科字符
Oracle TRIM函数是老大宽泛的函数,下面对Oracle
TRIM函数的语法作了详实的论述说明,希望得以给您对Oracle
TRIM函数有重复要命的认识。

2. UPPER函数

TRIM e.g

DWEYE
“BOTH”参数表示又去除字符串前后所指定的情节(默认情况下删除空格)。
4.既试用了BOTH参数,我们再拘留一下“TRAILING”和“LEADING”参数效果

gloria@www.jbxue.com> select trim (trailing from ‘ DWEYE ‘) “TRIM
e.g.” from dual;

TRIM(LEAD

hello****

专注:trimstring只能够是一个字符。

SQL> select trim(leading ‘*!’ from ‘*!*!hello’) from dual;
select trim(leading ‘*!’ from ‘*!*!hello’) from dual
*
ERROR at line 1:
ORA-30001: trim set should have only one character

5. INSTR函数(In-string)

INSTR函数确定搜索字符串在吃定字符串中的岗位。它回到数字位置,如果找字符串不设有,则该函数返回0。其语法为INSTR(source
string,search string,[search start position],[nth
occurrence])。其中,后少个参数是可选的,search start
position的默认值是1,即source string的起。nth
occurrence的默认值是1,即首先坏出现。

例如:

SQL> select instr(‘1*3*5*7*9′,’*’,-3,2) from dual;

TRIM e.g.

DWEYExxxx
6.用专注的地方

这里的“trim_character”参数就允许包含一个字符,不支持多字符。
报错信息如下:
gloria@www.jbxue.com> select trim (leading ‘xy’ from ‘xyxxDWEYExyyx’)
“TRIM e.g.” from dual;
select trim (leading ‘xy’ from ‘xyxxDWEYExyyx’) “TRIM e.g.” from dual
*
ERROR at line 1:
ORA-30001: trim set should have only one character
既然TRIM不能够满足我们去只剩“DWEYE”字符串的求,有么有另外手段为?of
course有。我们使用RTRIM和LTRIM“连环拳”完成这个职责。
1)使用RTRIM
gloria@www.jbxue.com> select rtrim(‘xyxxDWEYExyyx’,’xy’) “e.g.” from
dual;

UPPER函数将字符以大写形式出口。其语法为UPPER(char)。

e.g.

DWEYExyyx
3)联合以RTRIM和LTRIM函数达到我们的目的
gloria@www.jbxue.com> select ltrim(rtrim(‘xyxxDWEYExyyx’,’xy’),’xy’)
“e.g.” from dual;

TRUNC(145.78)

145

SQL> select trunc(145.78,1) from dual;

倘涉嫌Oracle
TRIM函数,最简单易行的效力就是是使它来去除字符串的行首和行尾的空格,这个职能也是大家用频率最高的均等种植。
然而Oracle
TRIM函数其实是富有去“任意指定”字符的法力,不可谓不牛。我们来平等糟体会的一起。
1.先看一下Oracle TRIM函数的完整语法描述
TRIM([ { { LEADING | TRAILING | BOTH }
[ trim_character ]
| trim_character
}
FROM
]
trim_source
)
如上语法引自于Oracle 10gR2官方文档:http://download.oracle.com/docs/ …
0/img_text/trim.htm
仅仅从之语法定义及我们就可以看出,小小的Oracle
TRIM函数蕴含了重复多而定制的功力。一一展示,供参考。
2.无比简便的用法开始
不利用另外参数:
gloria@www.jbxue.com> select trim (‘ DWEYE ‘) “TRIM e.g.” from
dual;

在意:返回的全是字符类型,在实践LOWER函数之前先行计算数据及日期表达式,并隐式转换为字符数据。

TRIM e.g.

DWEYE
gloria@www.jbxue.com> select trim (leading from ‘ DWEYE ‘) “TRIM
e.g.” from dual;

SU

5*

7. REPLACE函数

REPLACE函数用替换项取代源字符串中起的备寻项。其语法为REPLACE(source
string,search item,[replacement term])。replacement term默认为空字符。

例如:

SQL> select replace(‘1*3*5*7′,’*’,’->’) from dual;

TRIM e.g.

DWEYE
看得出,使用“TRAILING”参数可以形成字符串尾部空格的删除功能;而“LEADING”参数正好相反,完成字符串头部空格的勾功能。
也就是说,使用“TRAILING”和“LEADING”参数可以指定空格的删除位置。
5.“trim_character”参数粉墨登场

此参数改变了“删除空格”的默认行为。
倘想要去除字符串’xxxxDWEYExxxx’前后出现的“x”,“trim_character”参数就派上用场了。
gloria@www.jbxue.com> select trim (‘x’ from ‘xxxxDWEYExxxx’) “TRIM
e.g.” from dual;

LAST_DAY(

30-SEP-14

5. 日期ROUND函数

日子ROUND函数依据指定的日子精度格式对日期进行舍入运算。其语法为ROUND(source
date,[date precision format]).source date表示任意日期。date precision
format包括世纪(CC),年(YYYY),季度(Q),月(MM),星期(W),日(DD),时(HH)和细分(MI)。

如果日部分超过16,则会副到下一个月份,否则舍到当月。如果月在1以及6内,则会放弃到那时始的日子,否则入到下一致年开的日子。

例如:

查询的辰为:2014-09-26 04:44:38

SQL> select round(sysdate)
day,round(sysdate,’w’)week,round(sysdate,’month’)month,round(sysdate,’year’)year
from dual;

DAY          WEEK         MONTH       YEAR
———     ———     ———      ———
26-SEP-14 29-SEP-14  01-OCT-14  01-JAN-15

为查询时是4接触,没有翻动了12接触,故DAY是当天。因为本月1声泪俱下是周一,WEEK返回的是查询时从,下一个周一之日子,即29-SEP-14。因为查询时是26声泪俱下,超过16如泣如诉,故MONTH需入到下一个月份。因为查询时是9月,超过6月,故可到下一致年。

6. 日期TRUNC函数

日子TRUNC函数依据指定的日期精度格式对日期进行截取运算。其语法为TRUNC(source
date,[date precision format])。date precision
format指定截取的精度,默认的截取精度是日。这即意味着将source
date的兼具时间还安装为00:00:00(00时常、00区划及00秒)。在月级别上的截取将source
date的日子设置也该月的第一天。年级别的截取返回当年开班的日子。

例如:

SQL> select trunc(sysdate)
day,trunc(sysdate,’w’)week,trunc(sysdate,’month’)month,trunc(sysdate,’year’)year
from dual;

DAY           WEEK        MONTH      YEAR
———     ———     ———     ———
26-SEP-14  22-SEP-14 01-SEP-14 01-JAN-14

唯用专注的凡WEEK,因为本月1号是周一,WEEK返回的是本周周一底日期。

 

TRIM e.g

DWEYE
顿时为是极其常见的均等栽采取方式,都运默认的参数,默认情况下TRIM会同时删除字符串前后起的空格。
3.其实首先种植常用之道一致于下带有“BOTH”参数的写法
gloria@www.jbxue.com> select trim (both from ‘ DWEYE ‘) “TRIM e.g.”
from dual;

INSTR(‘1*3*5*7*9′,’*’,-3,2)

                                 4

SQL> select instr(‘1*3*5*7*9′,’*’) from dual;

TRIM e.g.

xxxxDWEYE
gloria@www.jbxue.com> select trim (leading ‘x’ from ‘xxxxDWEYExxxx’)
“TRIM e.g.” from dual;

ROUND(145.78,-1)

150

SQL> select round(145.78) from dual;

TRIM e.g

DWEYE
gloria@www.jbxue.com> select trim (trailing ‘x’ from ‘xxxxDWEYExxxx’)
“TRIM e.g.” from dual;

ROUND(145.78,1)

145.8

2. TRUNC函数(Truncate)

TRUNC函数依据指定的小数精度对数值进行截取运算。其语法为TRUNC(source
number,decimal precision)。

例如:

SQL> select trunc(145.78,-1) from dual;

e.g.

xyxxDWEYE
2)使用LTRIM
gloria@www.jbxue.com> select ltrim(‘xyxxDWEYExyyx’,’xy’) “e.g.” from
dual;

1. LOWER函数

LENGTH(‘HELLOWORLD!’)

12

3. LPAD和RPAD函数

LPAD和RPAD函数分别于誉为左填充和右填充函数。它们各自于受定字符串左边或右填充指定数量之字符。其语法为LPAD(s,n,p)和RPAD(s,n,p),其中s表示源字符串,n表示回去字符串的末尾长度,p指定用于填充的字符串。注意:如果参数n小于或者当源字符串s的长短,就未会见添加其它字符,此时只是回去源字符串s的前n个字符。p默看空格。

例如:

SQL> select
lpad(‘hello’,10,’*’),lpad(‘hello’,10,’*#’),lpad(‘hello’,10),lpad(‘hello’,4,’*’)
from dual;

LPAD(‘HELL LPAD(‘HELL LPAD(‘HELL LPAD
———-     ———-      ———-    —-
*****hello  *#*#*hello        hello    hell

SQL> select
rpad(‘hello’,10,’*’),rpad(‘hello’,10,’*#’),rpad(‘hello’,10),rpad(‘hello’,4,’*’)
from dual;

RPAD(‘HELL RPAD(‘HELL   RPAD(‘HELL RPAD
———-     ———-       ———-     —-
hello*****  hello*#*#*   hello            hell

4. TRIM函数

TRIM函数从字符串的启幕或者结尾删除一些字符。其语法为TRIM([trailing|leading|both]
trimstring from s)。其中

TRIM(s)删除输入字符串两止的空格

TRIM(trailing trimstring from
s)从字符串s的尾声删除所有trimstring(如果存在的话)。

TRIM(leading trimstring from s)从字符串s的起来删除所有trimstring。

TRIM(both trimstring from s)从字符串s的始和终极删除所有trimstring。

SQL> select trim(both ‘*’ from ‘***hello****’) from dual;

CONCAT(CONCAT(ENAME,”’SJOBIS

SCOTT’s job is ANALYST

2. LENGTH函数

LENGTH函数返回字符串的字符数,包括空格,制表符和特殊字符。其语法为LENGTH(s)。

例如:

SQL> select length(‘hello world!’) from dual;

INSTR(‘1*3*5*7*9′,’*’,2)

                             2

6. SUBSTR函数(Substring)

SUBSTR函数从吃定源字符串中加以的位置上马,提取指定长度的子字符串。其语法为SUBSTR(source
string,start position,[number of characters to
extrace])。最后一个参数可挑选,倘若没有点名,默认从start position到source
string结尾的字符数。

例如:

SQL> select substr(‘1*3*5*7’,3) from dual;

SQL> select upper(‘hello world’) from dual;

REPLACE(‘1

1->3->5->7

SQL> select replace(‘1*3*5*7′,’*’) from dual;

INITCAP(‘HELLOWORLD!THATISF

Hello World! That Is Funny!

其次、 字符操作函数

1. CONCAT函数

CONCAT函数用于连接两独字符串。有少数个参数,语法为CONCAT(s1,s2)。

例如:

SQL> select concat(‘hello’,’world’) from dual;

LOW LOWER(SYS LOWER
—    ———      —–
200  25-sep-14    hello

SUBST

3*5*7

SQL> select substr(‘1*3*5*7’,3,2) from dual;

NEXT_DAY(

25-SEP-14

SQL> select next_day(’19-SEP-2014′,’tue’) from dual;

ROUND(145.78)

146

SQL> select round(145.78,1) from dual;

例如:

UPPER(‘HELL

HELLO WORLD

3. INITCAP函数

INITCAP函数将字符串中每个单词的率先独字母大写,而拖欠单词的剩余字母小写。

例如:

SQL> select initcap(‘hello WORLD! that is funny!’) from dual;

CONCAT(‘HE

helloworld

SQL> select concat(concat(ename,”’s job is ‘),job) from emp where
empno=7788;

REPL

1357

老三、 数字函数

1. 数字round函数

ROUND函数依据指定的小数精度对数值进行四放弃五契合运算。其语法为ROUND(source
number,decimal precision)。decimal
precision参数指定舍入的精度。默认是0,即对源数字四放弃五副到整数。如果指定的小数精度n为正数,则只要舍入的中数字以稍微数点右侧(n+1)个位置。如果n为负数,则只要舍入的卓有成效数字在有些数碰左边n个位置。

例如:

SQL> select round(145.78,-1) from dual;

SU

3*

SQL> select substr(‘1*3*5*7’,-3,2) from dual;

MOD(5,2)

           1

SQL> select mod(5.2,2.2) from dual;

LOWER函数将字符以小写形式出口。其语法为LOWER(char)。

TRUNC(145.78,1)

145.7

3. MOD函数(Modulus)

MOD函数返回除法运算的余数。

例如:

SQL> select mod(5,2) from dual;

例如:

NEXT_DAY(

21-SEP-14

4. LAST_DAY函数

LAST_DAY函数提取指定日期所属的月份,并盘算该月最后一天之日期。其语法为LAST_DAY(date)。

例如:

SQL> select last_day(’19-SEP-2014′) from dual;

NEXT_DAY(

23-SEP-14

SQL> select next_day(’19-SEP-2014′,’SUNDAY’) from dual;

TRIM(

hello

SQL> select trim(trailing ‘*’ from ‘***hello****’) from dual;

TRUNC(145.78,-1)

140

SQL> select trunc(145.78) from dual;

ADD_MONTH

01-MAY-14

SQL> select add_months(‘1-MAR-2014’,-2.9) from dual;

1/31

.032258065

–可以看出小数部分是为31上也底蕴之。

2. ADD_MONTHS函数

ADD_MONTHS函数语法为ADD_MONTHS(date,number of
months),即计算指定月份添加到指定date后底日期。月数可以吧乘。

例如:

SQL> select add_months(‘1-MAR-2014’,1) from dual;

以Oracle
OCP考试被,相当一部分知识点涉及到于Oracle常见函数的考试。尽管Oracle官方文档SQL
Language
Reference中Functions一章节内列举了有Oracle自带函数,但要是只要系的看无异全勤,还是如费一定的活力,更何况还是英文为。如果撞一个不熟悉的,就翻开一下,不常用,又老爱忘。下面就本着Oracle常见函数做个整,方便以后查询。

一致、 大小写转换函数

MOD(5.2,2.2)

             .8

季、 日期函数

1. MONTHS_BETWEEN函数

MONTHS_BETWEEN函数返回两个日子参数之间月数的数值。其语法为MONTHS_BETWEEN(date1,date2)。该函数计算date1和date2之间月份的差值(每月31龙),即date1-date2。返回值可能是因为整数和小数部分组成。其中,整数表示马上半单日子内距离的月数。小数部分代表剩余的运和时,以31上之月吧根基。

例如:

SQL> select months_between(sysdate,sysdate-31) from dual;

MONTHS_BETWEEN(SYSDATE,SYSDATE-31)

                                          1

SQL> select months_between(‘2-MAR-2014′,’1-FEB-2014’) from dual;

TRIM(TRA

***hello

SQL> select trim(leading ‘*’ from ‘***hello****’) from dual;

SQL> select lower(100+100),lower(sysdate),lower(‘HELLO’) from dual;

INSTR(‘1*3*5*7*9′,’*’)

                           2

SQL> select instr(‘1*3*5*7*9′,’*’,2) from dual;

MONTHS_BETWEEN(‘2-MAR-2014′,’1-FEB-2014’)

                                    1.03225806

SQL> select 1/31 from dual;

相关文章