常用的系统函数

    xiaoxiao2021-03-26  43

    1字符函数

    length函数

    select length('abcd') from dual;

    select length('abcd好') from dual;--5个字符

    select lengthb('abcd好') from dual;--6个字节 一个汉字两个字节在不同的数据库,因为字符集的不同,LENGTHB得到的值可能会不一样)

    trim函数 (去除空格函数)

    select ltrim(' abcd') from dual;--截左边的空格 select rtrim(' abcd ') from dual;--截右边的空格 select trim(' abcd ') from dual;--截所有的空格

    substr函数 (截取字符函数)

    select substr('abcdefg',2,3) from dual; --表示从第二个字符取,取三个字符 select substr('abcdefg',length('abcdefg')-3+1,3) from dual;--表示右取三个字符

    concat函数 相当于||

    select 'g3e_fid'||'设施特征唯一编号' a from G3E_ATTRIBUTE_BAK;  

    select concat('g3e_fid','设施特征唯一编号') a from G3E_ATTRIBUTE_BAK;

    replace函数(字符串替代函数) REPLACE('string','s1','s2') --string   希望被替换的字符或变量 --s1       被替换的字符串 --s2       要替换的字符串 select replace('我的fid是22333','我','他') from dual; 结果为:他的fid是22333

    translate函数(字符级替代函数)

    字符替代函数

    SELECT translate('acdd','cd','ef') FROM dual; --aeff  直接将字母c换为e,字母d换为f

    如果是replace函数 SELECT REPLACE('acdd','cd','ef') FROM dual; --aefd  直接将cd换为ef

    lower函数

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

    upper函数

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

    initcap函数

    select initcap('ownership')  from G3E_ATTRIBUTE  --所选取的字段第一个字母用大写字母表示  

    2日期

    sysdate --系统时间

    select sysdate from dual;--输出结果是2017-02-04 18:10:54

    current_date --当前日期

    select current_date from dual;--输出结果是2017-02-04

    ROUND和TRUNC函数

    ROUND(n,[m]):该函数用于执行四舍五入运算;如果省略m,则四舍五入至整数位;如果m是负数,则四舍五入到小数点前m位;如果m是整数,则四舍五入至小数点后m位。

    select round('201345.534566',0);--结果为201346

    select round('201345.534566',-1);--结果为201350

    select round('201345.534566',1);--结果为201345.5

    TRUNC(n,[m]) 该函数用于截取数字。如果省略数字m,则将数字n的小数部分截去;如果数字m是整数,则将数字n截取至小数点后的第m位;如果数字m是负数,则将数字n截取至小数点的前m位。

    select round('201345.534566',0);--结果为201345

    select round('201345.534566',-2);--结果为201300

    select round('201345.534566',1);--结果为201345.53

    3转换

    to_char(转换成字符串)

    to_date(转换成日期)

    to_number(转换成数字)

    cast(类型转换)

    例:

    select sysdate from dual;

    select to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from dual;

    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

    select to_date('12-3-04') from dual;

    select to_number('3333') from dual;

     cast(expr as type_name):该函数用于将一个内置数据类型或集合类型转变为另一个内置数据类型或集合类型。

    select cast(now() as varchar) from dual;

    4聚集函数

    sum,avg,max,min,count

    COUNT()函数 

    SELECT COUNT(au_lname) FROM authors

    AVG()函数   

    SELECT AVG(vote) FROM opinion 

    函数AVG()只能对数值型字段使用

    SUM()函数   

    SELECT SUM(purchase_amount) FROM orders

    MAX()函数    SELECT MAX(vote) FROM opinion

    MIN()函数    SELECT MIN(vote) FROM opinion

     

    5、数字函数

    ABS函数

    ABS(n),该函数用于返回数字n的绝对值。示例如下, declare   v_abs number(6,2); begin   v_abs:=abs(&no);   dbms_output.put_line('绝对值:'||v_abs); end; 输入no的值:-12.6, 绝对值:12.6   

    FLOOR函数

    该函数用于返回小于等于数字n的最大整数

    select floor(2345.67) from dual;   2345

    6其他

    select user from dual;--查询当前用户

    nvl函数

    NVL函数的格式如下:NVL(expr1,expr2)

    含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值select a1,nvl(a2,'未输入'),a3 from aa;--处理空值

    NVL2函数

    NVL2函数的格式如下:NVL2(expr1,expr2, expr3)

    含义是:如果该函数的第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第三个参数的值。

    NULLIF函数

    NULLIF(expr1,expr2)函数的作用是如果exp1和exp2相等则返回空(NULL),否则返回第一个值。

    Coalesce函数

    Coalese函数的作用是的NVL的函数有点相似,其优势是有更多的选项。

    格式如下: Coalesce(expr1, expr2, expr3….. exprn) Coalesce是这样来处理这些参数的。如果第一个参数为空,则看第二个参数是否是空,否则则显示第一个参数,如果第二个参数是空再看第三个参数是否为空,否则显示第二个参数,依次类推。这个函数实际上是NVL的循环使用
    转载请注明原文地址: https://ju.6miu.com/read-658485.html

    最新回复(0)