oralce的一些特殊函数语句

来源:互联网 发布:日本东京大学知乎 编辑:程序博客网 时间:2024/05/08 16:21
 wmsys.wm_concat
一个字段里的几行数据合成在一个字段里:
select wmsys.wm_concat(t.name) from table t 
aa,bb,cc
 

LOWER

返回字符串,并将所有的字符小写

SQL> select lower('AaBbCcDd')AaBbCcDd from dual;

AABBCCDD
--------
aabbccdd

REPLACE('string','s1','s2')

string  希望被替换的字符或变量 
s1       被替换的字符串
s2       要替换的字符串

SQL> select replace('he love you','he','i') fromdual;

REPLACE('H
----------
i love you



ROUND

将日期d按照fmt指定的格式舍入,fmt为字符串。

Round(n,[m])

如果m是负数,则四舍五入到小数点前m位,如果m是正数,则四舍五入到小数点后m位。

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

10

按照指定的精度进行舍入
SQL> select round(55.5),round(-55.4),trunc(55.5),trunc(-55.5) from dual;

ROUND(55.5) ROUND(-55.4) TRUNC(55.5) TRUNC(-55.5)
----------- ------------ ----------- ------------
        56         -55         55          -55



LPAD(粘贴字符)

RPAD 在列的右边粘贴字符
LPAD  在列的左边粘贴字符

SQL> select lpad(rpad('gao',10,'*'),17,'*')fromdual;

LPAD(RPAD('GAO',1
-----------------
*******gao*******
不够字符则用*来填满


LTRIM


LTRIM  删除左边出现的字符串
RTRIM  删除右边出现的字符串
TRIM  删除左右出现的字符串
SQL> select ltrim(rtrim('   gao qian jing   ',' '),' ')from dual;

LTRIM(RTRIM('
-------------
gao qian jing

ABS

返回指定值的绝对值

SQL> select abs(100),abs(-100) from dual;

 ABS(100) ABS(-100)
--------- ---------
      100       100

ADD_MONTHS

ADD_MONTHS(,<i>),增加或减去月份,返回日期d加上i个月后的结果。i可以使任意整数。如果i是一个小数,那么数据库将隐式的他转换成整数,将会截去小数点后面的部分。
SQL> select to_char(add_months(to_date('199912','yyyymm'),2),'yyyymm') fromdual;

TO_CHA
------
200002
SQL> select to_char(add_months(to_date('199912','yyyymm'),-2),'yyyymm') fromdual;

TO_CHA
------
199910


CONCAT

连接两个字符串;

SQL>select concat('010-','88888888')||'转23'  高乾竞电话from dual

高乾竞电话
----------------
010-88888888转23


LENGTH

返回字符串的长度;

SQL>select name,length(name),addr,length(addr),sal,length(to_char(sal)) fromgao.nchar_tst;

NAME   LENGTH(NAME)ADDR            LENGTH(ADDR)       SAL LENGTH(TO_CHAR(SAL))
------ ------------ ---------------- ------------ -----------------------------
乾竞           3 北京市海锭区               6  9999.99                   7

LENGTHB


与LENGTH()一样,返回字节

MONTHS_BETWEEN(date2,date1)

返回date1和date2之间月的数目,如果date1和date2的日的日期都相同,或者都使该月的最后一天,那么将返回一个整数,否则会返回的结果将包含一个分数。给出date2-date1的月份
SQL> select months_between('19-12月-1999','19-3月-1999')mon_between from dual;

MON_BETWEEN
-----------
          9
SQL>selectmonths_between(to_date('2000.05.20','yyyy.mm.dd'),to_date('2005.05.20','yyyy.mm.dd'))mon_betw from dual;

 MON_BETW
---------
      -60



-- substr() 函数:  截取字符串 。  substr() 函数用户截取字符串。 该函数可以指定 截取的起始位置,  截取长度, 可以实现灵活的截取操作, 因此, 称为字符串操作中最为常用的 函数之一。   
  
--例如: 对于 字符串“1234567890”, 现在欲截取 自 第5位开始的  4个字符。  select substr('1234567890',5,4) from dual;   
SQL> select substr('1234567890',5,4) from dual;  
SUBS  
----   
5678  
  
SQL>  
  
-- 需要注意的是  Oracle 中的 字符位置 是从 1 开始, 而不是向某些编程语言 (如Java)那样从 0 开始。   
-- 如果 不指定长度, 那么 substr() 函数 将获取 起始位置参数 字符串结尾处 的所有字符。   
-- select substr('1234567890',5) from dual;   
SQL> select substr('1234567890',5) from dual;  
  
 SUBSTR  
 ------   
 567890  
原创粉丝点击