oracle操作记录-字符串和数值函数

单行函数操作: 函数的参数是一个表达式或者字段名


===================字符串函数操作========================
1.

SQL> select upper('smith') from dual ;

UPPER
-----
SMITH


2. 使用upper()函数,将字符变为大写

SQL> select * from emp where ename = upper('Smith') ;

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-12月-80            800                    20
     
3. 使用lower函数

SQL> select lower('HELLO WORLD') from dual ;

LOWER('HELL
-----------
hello world


4. 第一个单词变成大写

SQL> select initcap('hello world') from dual ;

INITCAP('HE
-----------
Hello World


5. 将查询结果的首字母为大写

SQL> select initcap(ename) from emp ;

INITCAP(EN
----------
Beyond
Jacky
Smith
Allen
Ward
Jones
Martin
Blake
Clark
Scott
King
Turner
Adams
James
Ford
Miller

已选择16行。


6. 字符串连接函数 (和 || 作用相同)

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

CONCAT(HE
----------
helloworld


7. 使用substr, length, replace函数,分别用于返回子字符串,程度,替换字符
  substr()函数的开始截取点, 从0和从1中开始效果是一样的 ! oracle比较智能,一般程序是从0开始

SQL> select substr('hello',1,3), length('hello'), replace('hello','ll','xx') from dual ;

SUB LENGTH('HELLO') REPLA
--- --------------- -----
hel               5 hexxo


8. 取姓名的后四位

SQL> select substr(ename,length(ename)-3,4) from emp ;

SUBSTR(E
--------
yond
acky
MITH
LLEN
WARD
ONES
RTIN
LAKE
LARK
COTT
KING
RNER
DAMS
AMES
FORD
LLER

9. 取姓名的后3位

SQL> select ename, substr(ename,length(ename)-2) from emp ;

ENAME      SUBSTR(ENAME,LENGTH(
---------- --------------------
beyond     ond
Jacky      cky
SMITH      ITH
ALLEN      LEN
WARD       ARD
JONES      NES
MARTIN     TIN
BLAKE      AKE
CLARK      ARK
SCOTT      OTT
KING       ING
TURNER     NER
ADAMS      AMS
JAMES      MES
FORD       ORD
MILLER     LER

已选择16行。

 

10. 也可以这样写比较方便, 从-3的位置, 取3位 (倒序)

SQL> select ename , substr(ename,-3,3) from emp ;

ENAME      SUBSTR
---------- ------
beyond     ond
Jacky      cky
SMITH      ITH
ALLEN      LEN
WARD       ARD
JONES      NES
MARTIN     TIN
BLAKE      AKE
CLARK      ARK
SCOTT      OTT
KING       ING
TURNER     NER
ADAMS      AMS
JAMES      MES

 


=============================数值函数================================

1. round() 四舍五入

SQL> select round(760.539) from dual ;

ROUND(760.539)
--------------
           761
          
          
2. 保留两位小数

SQL> select round(760.536,2) from dual ;

ROUND(760.536,2)
----------------
          760.54
     
         
3. 参数-2 表示从整数的个位数开始四舍五入

SQL> select round(782.376,-2) from dual ;

ROUND(782.376,-2)
-----------------
              800
      
             
4. trunc()函数不保留任何小数, 也不进行四舍五入

SQL> select trunc(782.678) from dual ;

TRUNC(782.678)
--------------
           782
 
5. 通过trunc()函数查询Jacky的工资, 去掉小数位

SQL> set linesize 300 ;
SQL> select * from emp ;

     EMPNO ENAME                JOB                       MGR HIREDATE              SAL       COMM     DEPTNO
---------- -------------------- ------------------ ---------- -------------- ---------- ---------- -
      2010 Jacky                SalesMan                 8001 01-3月 -93        3000.67      20.86         10
      7369 SMITH                CLERK                    7902 17-12月-80            800                    20
      7499 ALLEN                SALESMAN                 7698 20-2月 -81           1600        300         30
      7521 WARD                 SALESMAN                 7698 22-2月 -81           1250        500         30
      7566 JONES                MANAGER                  7839 02-4月 -81           2975                    20
      7654 MARTIN               SALESMAN                 7698 28-9月 -81           1250       1400         30
      7698 BLAKE                MANAGER                  7839 01-5月 -81           2850                    30
      7782 CLARK                MANAGER                  7839 09-6月 -81           2450                    10
      7788 SCOTT                ANALYST                  7566 19-4月 -87           3000                    20
      7839 KING                 PRESIDENT                     17-11月-81           5000                    10
      7844 TURNER               SALESMAN                 7698 08-9月 -81           1500          0         30
      7876 ADAMS                CLERK                    7788 23-5月 -87           1100                    20
      7900 JAMES                CLERK                    7698 03-12月-81            950                    30
      7902 FORD                 ANALYST                  7566 03-12月-81           3000                    20
      7934 MILLER               CLERK                    7782 23-1月 -82           1300                    10

已选择15行。

SQL> select trunc(sal) from emp where ename = 'Jacky' ;


6. 保留两位小数,但不四舍五入

SQL> select trunc(782.368,2) from dual ;

TRUNC(782.368,2)
----------------
          782.36
      
         
7. 参数为-2, 从个位开始,但不四舍五入为800

SQL> select trunc(782.368,-2) from dual ;

TRUNC(782.368,-2)
-----------------
              700
 
             
8. mod()函数用于取余数

SQL> select mod(10,3) from dual ;

 MOD(10,3)
----------
         1


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值