zoukankan      html  css  js  c++  java
  • oracle常用函数积累

    --oracle常用函数积累--
    --1、字符串长度:LENGTH ,语法: CONCAT(string)
        --示例
        select LENGTH('AA_BB') from dual;--结果:5
    --2、字符串连接:CONCAT,语法: CONCAT(string1,string2)
        --示例
        select CONCAT('AA','_BB') from dual;--结果:AA_BB
        --简单点,用双竖线即可
        select 'AA'||'''-'''||'BB' from dual;--结果:AA'-'BB,单引号要用''转义
    --3、字符串替换:REPLACE,语法:REPLACE(string,search_str[,replace_str]);
        --示例
        select REPLACE('AA_BB','BB','CC') from dual;--结果:AA_CC
        select REPLACE('AA_BBBB','BB') from dual;--结果:AA_
    --4、字符串截取:SUBSTR,语法: SUBSTR(string,start_position,[length]),string 源字符串,start_position开始位置(从0开始), length 可选项,截取的个数
        --示例
        select SUBSTR('AA_BB',0,2) from dual;--结果:AA
        select SUBSTR('AA_BB',0) from dual;--结果:AA_BB
    --5、字符串查询:INSTR(string,subString,start_position,count),string:源字符串,subString:要查找的子字符串,start_position:查找的开始位置(从1开始),count:源字符串中第几次出现的子字符串
        --示例
        select INSTR('AA_BB_BB','A',1,1) from dual;--结果:1 
        select INSTR('AA_BB_BB','A',1,2) from dual;--结果:2  
        select INSTR('AA_BB_BB','BB',1,2) from dual;--结果:7 
    --6、一列结果拼接成一个字符串listagg,语法: listagg(column,str) within group(order by column),column要查找的表字段,str连接字符串
        --示例
        --3.1、查询table4表的c_id数据
        select c_id from table4;
        --结果为:
        --C_ID
        --0BC86FE5-BCF3-45C2-95C1-C8328D5849FD
        --39430D20-13BB-4EEB-A300-82F6AC7551CB
        --97876BB9-F366-4694-BFD6-71C3ACBD5995
        --9C085EE3-399E-4773-8A91-8D745E1713A6
        --3.2、使用函数listagg(oracle版本11g或更高)
         select listagg(c_id,',') within group(order by c_id) as res
              from table4;
         --结果为:
         --RES
         --0BC86FE5-BCF3-45C2-95C1-C8328D5849FD,39430D20-13BB-4EEB-A300-82F6AC7551CB,97876BB9-F366-4694-BFD6-71C3ACBD5995,9C085EE3-399E-4773-8A91-8D745E1713A6
    --7、使用to_char、to_date、to_timestamp,时间加减等
        --示例
        select to_char(sysdate,'yyyy') from dual;--结果:2017
        select to_char(sysdate,'mm') from dual;--结果:08
        select to_char(sysdate,'dd') from dual;--结果:25
        select to_char(sysdate,'yyyy-mm-dd') from dual;--结果:2017-08-25
        select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;--结果:2017-08-25 17:01:22
        select to_date('2017-08-25 17:01:22','yyyy-mm-dd hh24:mi:ss') from dual; --结果:25-8月 -17
        select to_timestamp('2017-08-22 09:26:15:821000', 'YYYY-MM-DD HH24:MI:SS:FF6') from dual; --结果:22-8月 -17 09.26.15.821000000 上午
        select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate - interval '10' MINUTE,'yyyy-mm-dd hh24:mi:ss') from dual;--结果:2017-08-25 17:05:41     2017-08-25 16:55:41 减去10分钟
        select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate + interval '10' MINUTE,'yyyy-mm-dd hh24:mi:ss') from dual;--结果:2017-08-25 17:06:44    2017-08-25 17:16:44 加上10分钟
        select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate - interval '10' HOUR,'yyyy-mm-dd hh24:mi:ss') from dual;--减去10小时
        select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate + interval '10' HOUR,'yyyy-mm-dd hh24:mi:ss') from dual;--加上10小时
        select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate - interval '10' MONTH,'yyyy-mm-dd hh24:mi:ss') from dual;--减去10月
        select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate + interval '10' MONTH,'yyyy-mm-dd hh24:mi:ss') from dual;--加上10月
        select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate - interval '10' YEAR,'yyyy-mm-dd hh24:mi:ss') from dual;--减去10年
        select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate + interval '10' YEAR,'yyyy-mm-dd hh24:mi:ss') from dual;--加上10年
        select to_char(sysdate-1,'yyyy-mm-dd') from dual;--结果:2017-08-24,减去一天
        select to_char(sysdate+1,'yyyy-mm-dd') from dual;--结果:2017-08-26,加去一天
    --8、空判断:nvl,语法:nvl(column,str),column被判断字符,如果为null,则替换为str
        --示例
        select nvl(null,'') from dual;--结果:无
    --9、条件判断:case when then else end ,CASE search_expression WHEN expression1 THEN result1 WHEN expressionN THEN resultN ELSE default_result
        --示例
        select case when 'a'='a' then '' when 'a'='b' then '' else '合格' end 
        from dual;--结果:优
    --10截取clob部分数据

      dbms_lob.substr(column,4000)


  • 相关阅读:
    Codeforces ECR 83 C. Adding Powers (位运算)
    Codeforces Round #636div3 D. Constant Palindrome Sum (划分区间,差分)
    Codeforces Round #603 C. Everyone is a Winner!
    Centos7 下搭建SVN + Apache 服务器 风行天下
    完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)基础环境搭建 风行天下
    云计算的理解 风行天下
    Python之路3【知识点】白话Python编码和文件操作 风行天下
    C#中TreeView组件使用方法初步
    复制文件时explorer.exe出错解决方法
    C# 里TreeView绑定数据库实现分类
  • 原文地址:https://www.cnblogs.com/xmqa/p/7429004.html
Copyright © 2011-2022 走看看