当前位置:  数据库>oracle
本页文章导读:
    ▪SQL自定义排序      前一阵子有一个需求,要按照用户的需求安排排序规则:举例:数据库为Oracle,针对表table_example的class字段排序,class字段值为:A、B、C、D。用户要求table_example中的数据按照class字段值C、A、D.........
    ▪oracle 分页 sql      在项目改造中,原同事写的分页是从数据库查询出所有记录后再分页,现在改造成动态查询出所分出来的页和记录数。//查询第100条到第199条记录select * from(select B.*,RowNumber rn from  (s.........
    ▪Oracle客户端tnsnames.ora连接配置      // Oracle客户端tnsnames.ora连接配置Oracle90的在C:\Oracle\ora90\network\ADMIN下面配置如下:RKK =  (DESCRIPTION =    (ADDRESS_LIST =      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 15.........

[1]SQL自定义排序
    来源:    发布时间: 2013-10-29

前一阵子有一个需求,要按照用户的需求安排排序规则:


举例:


数据库为Oracle,针对表table_example的class字段排序,class字段值为:A、B、C、D。


用户要求table_example中的数据按照class字段值C、A、D、B的顺序排序。


方法一:


开始想了一个方法是select的时候增加一个自定义字段custom,当class的值为C、A、D、B时令custom的值为1、2、3、4.


利用case when时,发现无需增加自定义字段即可实现:



select * from teble_exaple order by
(
case class
when 'C' then 1,
when 'A' then 2,
when 'D' then 3,
when 'B' then 4
else '' end
)


方法二:


利用程序端控制,由于用的PB,实现起来逻辑还是比较复杂,没有深究,思路:(仅为参考,未实现.)



dw_1.setsort(if(class = 'A', 'C', if(class = 'B', 'D', class)) A)
dw_1.sort


方法三:


利用decode函数:



select * from table_example order by decode(class,'C',1,'A',2,'D',3,'B',4)


sqlserver中类似功能的函数为charindex.


方法三为最简洁的方案,个人感觉很多情况下能用sql实现的功能比程序端实现要直接。

本文链接


    
[2]oracle 分页 sql
    来源:    发布时间: 2013-10-29

在项目改造中,原同事写的分页是从数据库查询出所有记录后再分页,现在改造成动态查询出所分出来的页和记录数。

//查询第100条到第199条记录

select * from(select B.*,RowNumber rn from  (select * from A) B  where B.rn>=100) where rn<=199

 

从上面的查询格式来看,oracle表中的中间多少条记录,最少要嵌套3层子查询,如果和其他表作连接,则把最后的连接查询看做是A表即可。越是查到最后查询越是慢。

未完待续....,随后将给出oracle存储过程分页和sql脚本分页性能比较。

本文链接


    
[3]Oracle客户端tnsnames.ora连接配置
    来源:    发布时间: 2013-10-29
//
Oracle客户端tnsnames.ora连接配置

Oracle90的在C:\Oracle\ora90\network\ADMIN下面

配置如下:

RKK =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = test)
    )
  )

主要就是ip和sid

BAIDU_CLB_SLOT_ID = "551284";
BAIDU_CLB_SLOT_ID = "551289";

本文链接


    
最新技术文章:
▪current online redo log缺失后的恢复
▪ORA-600 2662错误解决实例
▪ORA-00600 2662错误解决方法
▪Oracle Hidden Parameter:_allow_resetlogs_corruption
▪Oracle诊断事件列表
▪Oracle 隐含参数 _disable_logging 详解
▪ORA-00600 [2662]错误解决过程
▪Oracle里常见的执行计划
▪Oracle里另外一些典型的执行计划
▪Oracle服务器自动备份
▪Oracle固定SQL的执行计划(一)---SQL Profile
▪Oracle固定SQL的执行计划(二)---SPM
▪同一环境下新建Standby RAC库
▪Oracle快速克隆安装
▪Oracle单实例启动多个实例
▪Oracle的PLSQL别名中文出现乱码解决方法
▪ORA-00379: no free buffers available in buffer pool DEFAULT ...
▪RMAN-06023: no backup or copy of datafile 16 found to restor...
HTML教程 iis7站长之家
▪OEL6.8_X86平台部署Oracle 10gR2检测失败问题
▪Oracle 性能优化建议
▪Oracle SQL语句优化心得
▪Oracle慢SQL监控脚本实现
▪Oracle dblink 查询 tns:无法解析指定的连接标识...
▪Red Hat Enterprise Linux 6使用udev配置Oracle ASM总结...
▪Linux6.6及以上版本配置Oracle ASM共享储存-UDEV
▪Oracle 12C 开启数据库归档模式
▪Solairs系统中配置Oracle 12c 开机启动
▪重建DBMS_STATS解决ORA-31626 ORA-21633以及ORA-04063 ORA...
▪Oracle ASMM 与AMM之间相互切换
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3