zoukankan      html  css  js  c++  java
  • Oracle单行函数

    单行函数格式:

    函数名【(参数1,参数2,参数3,...)】

    其中参数可以为用户定义的常量、变量、列名和表达式。

    单行函数只对表中的一行数据进行操作,并且对每一行数据只产生一个输出结果。

    单行函数可用在SELECT、WHERE和ORDER BY的子句中,而且单行函数可以嵌套。

    单行函数包含字符型。数字型、日期型、转换型和一般型函数。

    1.单行字符型函数

    (1)LOWER(列名|表达式):该函数用于把字符转换成小写。

    SELECT LOWER('SQL: Structural Query Language')
    FROM dual;

    dual是系统的一个虚表(伪表),原因:

    在查询语句中必须包含SELECT和FROM两个子句,可是LOWER('SQL: Structural Query Language')不属于任何表,于是用Oracle提供的虚表dual来解决这一难题。

    (2)UPPER(列名|表达式):该函数用于把字符转换成大写。

    SELECT UPPER('sql is used exclusively in rdbmses')
    FROM dual;

    (3)INITCAP(列名|表达式):该函数用于把每个字的头一个字符转换成大写,其余转换成小写。

    SELECT INITCAP('SQL is an ENGLISH LIKE language')
    FROM dual;

    (4)CONCAT(列名|表达式,列名|表达式):该函数用于把第1个字符串和第2个字符串连接成一个字符串。

    SELECT CONCAT('SQL alows you to manipulate the data in DB',' without any programming knowledge')
    FROM dual;

    (5)SUBSTR(列名|表达式,m,[n]):该函数用于返回指定的子串,该子串从第m个字符开始,其长度为n。

    SELECT SUBSTR('SQL lets you concentrate on what has to be done',14)
    FROM dual;

    (6)LENGTH(列名|表达式):该函数用于返回列或表达式中字符串的长度。

    SELECT LENGTH('SQL does no let you concentrate on how it will be achieved')
    FROM dual;

    (7)INSTR(列名|表达式,‘字符串’,[m],[n]):该函数用于返回所给字符串的数字位置,m表示从第m个字符开始搜索,n表示所给字符串出现的次数,它们的默认值都为1。

    SELECT INSTR('SQL allows for dynamic DB changes','F')
    FROM dual;
    SELECT INSTR('SQL allows for dynamic DB changes','f')
    FROM dual;

     (8)TRIM([leading|trailing|both]要去掉的字符FROM源字符串):该函数能够从“源字符串”中的头(leading)部、尾(trailing)部或头部和尾部中(both)去掉“要去掉的字符串”。如果没有指定头或尾,TRIM函数按默认(both)处理(该函数是8i引入的,在8i之前的版本中是LTRIM和RTRIM两个函数)。

    SELECT TRIM('?' FROM '?SQL*PLUS is the SQL implementation used in an Oracle RDBMS or ORDBMS.')
    FROM dual;
    SELECT TRIM('?' FROM 'It can process data in sets of rows??')
    FROM dual;
    SELECT TRIM('s' FROM 'sql*plus is a fourth generation query language')
    FROM dual;
    SELECT TRIM(trailing 's' FROM 'sql*plus is a fourth generation query languages')
    FROM dual;

    (9)REPLACE(正文表达式,要搜寻的字符串,替换字符串):该函数用于在“正文表达式”中查找“要搜寻的字符串”,如果找到了就用“替换字符串”替代。

    SELECT REPLACE('SQL*PLUS supports loops or if statements','supports','does not support')
    FROM dual;

    实例:

    SELECT empno AS "Code",UPPER(ename) NAME,INITCAP(job) "Job"
    FROM emp
    WHERE LOWER(job)='salesman';

    SELECT CONCAT(ename,job) "Employee",SUBSTR(job,1,5) "Title",LENGTH(ename) "LENGTH",INSTR(job,'M')
    FROM emp
    WHERE LOWER(job)='salesman';

    2.数字型函数

    ROUND(列名|表达式,n):该函数将列名或表达式所表示的数值四舍五入到小数点的n位。

    TRUNC(列名|表达式,n):该函数将列名或表达式所表示的数值取到小数点的后n位。

    MOD(m,n):该函数将m除以n并取余数。

    select round(168.888,1),TRUNC(168.888,1)
    from dual;

    select round(168.888),TRUNC(168.888)
    from dual;

     select round(168.888,-1),TRUNC(168.888,-1)
    from dual;

    select mod(1900,400)
    from dual;

    3.日期型数据

    Oracle的日期型数据的内部存储格式为:世纪,月,日,时,分,秒。

    从Oracle9i开始,日期型数据输入和输出的默认格式为DD-MON-RR,而在这之前的版本中为DD-MON-YY。

    如果使用的是中文操作系统,而数据库的字符集为美国英语,为了使日期型数据的显示正确,输入如下命令:

    alter session set NLS_DATE_LANGUAGE='AMERICAN';

    Oracle提供了系统日期函数SYSDATE,它返回当前的系统时间。

    select sysdate from dual;

    把一个日期型数据和一个数字相加减,结果仍为日期型。

    select sysdate-10 from dual;
    select sysdate+10 from dual;

    两个日期型数据相减,其结果为数字型。to_date将字符串转换成日期型数据。

    select to_date('15-JUL-02')-sysdate from dual;

    把一个日期型数据和一个小时数相加减后除以24,其结果仍为日期型。

    select sysdate - 22/24 from dual;

    select empno,ename,job,sal,(sysdate-hiredate)/365 "Years" from emp where job like 'SAL%';

  • 相关阅读:
    win10安装virtualBox创建CentOS6.5虚拟机
    ES系列二、CentOS7安装ES head6.3.1
    ES系列一、CentOS7安装ES 6.3.1、集成IK分词器
    Python easyGUI 猜数字
    Python easyGUI 登录框 非空验证
    Python easyGUI 文件浏览 显示文件内容
    Python easyGUI 文件对比 覆盖保存
    Python 统计代码量
    什么是一个人真正的魅力?
    Python学习笔记(15)- osos.path 操作文件
  • 原文地址:https://www.cnblogs.com/mingforyou/p/2403114.html
Copyright © 2011-2022 走看看