--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 '' 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 '' 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 '' HOUR,'yyyy-mm-dd hh24:mi:ss') from dual;--减去10小时
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate + interval '' HOUR,'yyyy-mm-dd hh24:mi:ss') from dual;--加上10小时
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate - interval '' MONTH,'yyyy-mm-dd hh24:mi:ss') from dual;--减去10月
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate + interval '' MONTH,'yyyy-mm-dd hh24:mi:ss') from dual;--加上10月
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate - interval '' YEAR,'yyyy-mm-dd hh24:mi:ss') from dual;--减去10年
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate + interval '' 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)

    

最新文章

  1. mysqldump和xtrabackup备份原理实现说明
  2. 背水一战 Windows 10 (13) - 绘图: Stroke, Brush
  3. AzCopy Upload Files
  4. red hat关于桥接模式连不上外网或者没有IP
  5. 关于OC中的block自己的一些理解(一)
  6. 快速tab应用
  7. sqlserver获取表名,字段名
  8. Pox启动及事件产生、监听分析
  9. bnu 4351 美女来找茬(水水)
  10. java实现 阿拉伯数字转换为汉字数字 算法
  11. UVA 10313(完全背包变形)
  12. Android ListView多布局讲解
  13. YUI Compressor
  14. php 中使用include、require、include_once、require_once的区别
  15. Android HandlerThread 源代码分析
  16. oauth2-server-php-docs 食谱
  17. 【R】R语言常用函数
  18. Python与系统的交互方式
  19. ZooKeeper 之 zkCli.sh客户端的命令使用
  20. eclipse的使用和断点调试

热门文章

  1. RegisterClientScriptBlock和RegisterStartupScript的区别
  2. Fragment中获取Activity的Context (转)
  3. wireshark mqtt协议解析
  4. Oracle learning note
  5. CCF计算机职业资格认证考试 201809-2 买菜
  6. MySQL主主配置及并行复制搭建
  7. kubernetes 知识点及常用命令
  8. buf.indexOf()
  9. 优先队列重载运算符< 以及初始化列表
  10. (dede)织梦系统二次开发笔记