神奇的sql语句

  • select a.jh,b.kgrq from a,b where a.jh=b.jh  order by jh

你相信吗?上面的sql语句在pl*sql中是可以顺利执行的,虽然a表和b表中都包含jh这个字段,但是不需要指明其来自哪个表。但是where子句中的字段是需要指明来自哪个表的。

  • select a.* from ((select * from t_repair) order by jh a

你相信吗?这条sql语句也是可以正常运行的。同样,where子句不能运用于这种情形下。

  • 在pl*sql中开启计时的sql语句为:set time on;关闭计时的sql语句为:set time off。具体表现形式请参考下图:

21331312_201106162036111.jpg

  • 外连接会很影响查询速度。
  • 对于分析函数lead来说,有一个非常有趣的现象

select distinct jh,lead(xjrq) over(order by jh,1,null) from a where jh='B1-1-P50' order by xjrq desc。执行此sql语句会出现以下错误:

21331312_201106162047421.jpg

 

 

修改为以下语句则正确了:

select  jh,lead(xjrq) over(order by jh,1,null) from ddb041 where jh='B1-10-450' order by xjrq desc

猜出是哪里不对了吗?将distinct去掉就可以了。

 

 

 

 

 

 

 

 

 

 

fj.pngpl_sql计时.JPG

fj.pnglead出错.JPG

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21331312/viewspace-700087/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/21331312/viewspace-700087/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值