`

oracle中常用的字符串查找、替换以及截取函数的用法!

阅读更多

1:当根据业务需要时,使用group by分组得到的记录,但可能还需要加上条件来对分组得到的数据进行过滤取数.可采用having的关键字来完成,具体参见以下SQL实例.
SELECT INSID,COUNT(INSID) NO_ID FROM T_WF_ENG_PROCESS GROUP BY INSID HAVING COUNT(INSID)>1;

2:关于对于字符串的一些常用处理的命令:
1):INSTR(
串搜索函数)
2):REPLACE(
查找并替换)
3):SUBSTR(
字符串截取)

3:关于对字符串取值的一个实例:(取列名值中间一部份的值):
1:SELECT DISTINCT REPLACE(SUBSTR(ADDRESS,INSTR(ADDRESS,'/',-1,2),(LENGTH(SUBSTR(ADDRESS,INSTR(ADDRESS,'/',-1,2),LENGTH(ADDRESS)))-LENGTH(SUBSTR(ADDRESS,INSTR(ADDRESS,'/',-1,1),LENGTH(ADDRESS))))+1),'/','') ADDRESS FROM (SELECT PAGEADDRESS ADDRESS FROM T_WF_ENG_TASKPAGE WHERE ID IN (SELECT PAGEID FROM T_WF_ENG_ACT_TASK WHERE WFID='B120-20050823' AND (KIND='G' OR KIND ='W')) UNION ALL SELECT ADDRESS FROM T_WF_ENG_LOGIN_KIND WHERE ID IN (SELECT KIND FROM T_WF_ENG_LOGIN WHERE ID IN (SELECT PAGEID FROM T_WF_ENG_ACT_TASK WHERE WFID='B120-20050823' AND KIND = 'A')) UNION ALL SELECT PATH ADDRESS FROM T_WF_ENG_AFFIX_TEMPLET WHERE ID IN (SELECT PAGEID FROM T_WF_ENG_ACT_TASK WHERE WFID='B120-20050823' AND KIND='I')) WHERE UPPER(ADDRESS) LIKE '../CUSTOM/PRIVATE/%';
2:SELECT DISTINCT REPLACE(SUBSTR(ADDRESS,INSTR(ADDRESS,'/',-1,2),(LENGTH(SUBSTR(ADDRESS,INSTR(ADDRESS,'/',-1,2),LENGTH(ADDRESS)))-LENGTH(SUBSTR(ADDRESS,INSTR(ADDRESS,'/',-1,1),LENGTH(ADDRESS))))+1),'/','') ADDRESS FROM T_WF_ENG_XML_COMMN WHERE ADDRESS IN (SELECT PAGENAME FROM T_WF_ENG_LOGIC WHERE WFID = 'B120-20050823');

注:如果要获得某个字符串出现的次数,可使用LENGTH(ADDRESS)-LENGTH(REPLACE(ADDRESS,'_',''))这种方式获得之间的长度差即可得到出现的次数.

4:取某表的前10行数据的SQL语句:
select * from tablename where rownum<=10;

5:如果是子查询取某表的前10行数据的SQL语句可以写成如下(其中create_date字段类型必须为日期型):
select id FROM (SELECT * FROM (SELECT id, max(create_date) AS create_date FROM test WHERE status = 1 AND create_date >= sysdate - 1/24 GROUP BY id) ORDER BY create_date DESC) WHERE rownum <= 10;
说明:即然是取最新的10记录,其实是没有必要把所有的数据都group by一次的,所以可以取最近一小时的数据,做group by就可以满足需求,如果增量数据很大,也可以考虑取走分钟(5/1440)的增量数据等,通过查询条件create_date >= sysdate - 1/24,把许多不需要进行group by的记录都排除了。
  也就是说,进行SQL调优时,理解SQL的意图很重要。。。

6:取月份的第一天和最后一天
SELECT LAST_DAY(ADD_MONTHS(SYSDATE,-1)) FROM DUAL;
------
取上个月的最后一天.
SELECT ADD_MONTHS(LAST_DAY(ADD_MONTHS(SYSDATE,-1))+1,-1) FROM DUAL;
-----
取上个月的第一天

分享到:
评论

相关推荐

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    学习oracle,首先我们必须要掌握常用的基本命令,oracle中的命令比较多,常用的命令如下: 1. 登录命令(sqlplus) 说明:用于登录到oracle数据库 用法:sqlplus 用户名/密码 [as sysdba/sysoper] 注意:当用特权用户...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式...

    C#开发经验技巧宝典

    0837 如何在查询中正确使用单引号“’” 502 0838 SQL中SELECT语句的执行顺序 502 0839 在查询时查询数据为指定长度的数据 502 0840 如何利用WHERE参数过滤数据 503 0841 如何正确地理解和运用SQL中的判式...

    C#编程经验技巧宝典

    79 &lt;br&gt;0115 如何判断是否为数字 79 &lt;br&gt;0116 如何在字符串中查找指定字符 79 &lt;br&gt;0117 如何在字符串中用一子串替换另一子串 80 &lt;br&gt;0118 将新字符串添加到已有字符串中 80 &lt;br&gt;0119 如何在...

    java面试宝典

    54、字符串操作:如何实现字符串的反转及替换? 14 55、编码转换:怎样将GB2312 编码的字符串转换为ISO-8859-1 编码的字符串? 14 56、写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔。 14 59、...

    千方百计笔试题大全

    54、字符串操作:如何实现字符串的反转及替换? 14 55、编码转换:怎样将GB2312 编码的字符串转换为ISO-8859-1 编码的字符串? 14 56、写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔。 14 59、...

    Oracle从入门到精通

    8、文本字符串............................................. 9、DISTINCT .............................................. 1.5、SQLPLUS 与 SQL 的关系................................ 1、SQLPLUS命令的功能: ...

    vc++ 应用源码包_1

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 应用源码包_6

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 应用源码包_2

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 应用源码包_5

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 应用源码包_3

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 开发实例源码包

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

Global site tag (gtag.js) - Google Analytics