ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 神奇的sql语句

神奇的sql语句

原创 Linux操作系统 作者:Kneeland 时间:2011-06-16 20:20:00 0 删除 编辑
  • 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。具体表现形式请参考下图:

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

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

 

 

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

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

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

 

 

 

 

 

 

 

 

 

 

pl_sql计时.JPG

lead出错.JPG

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

下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-04-08

  • 博文量
    7
  • 访问量
    34402