exists (select ’X‘ from....) 中的 ’X‘ 怎么理解

exists (select ’X‘  from....) 中的 ’X‘ 怎么理解。不要光说它是个常量啊,重要的是为什么要这样?
我也来说两句 查看全部回复

最新回复

  • yzsind (2008-6-30 18:04:42)

    本来就是一个常量罢了,没什么特别的意义,这种的话随便放一个常量都可以,只是个人喜欢罢了
  • valenwon (2008-6-30 20:05:49)

    常量,column 1 放一个'X' 作为值

    至于为什么要这样?

    我想SQL作者是这样想的,如果你放一个字段,或者多个字段,甚至是 *
    oracle就回去查询internal dictionary table ,产生多于的recycle read。

    不过我猜想最新的cost优化器判断exists的时候,已经不会去读字段,只会按条件 count 就OK了
  • vvvgui (2008-7-01 01:39:36)

    很简单,其实那个X 是个虚拟的数值,顺便填写个就可以了,一般情况下应该看后面的where 条件后的 类似 T1.ID=T2.ID   结合exists前面的SELECT来看,就是把T1表中ID存在T2表中的记录全部从T1表中取出来,相当于IN
    即ID存在T2表中的记录全部取出来,条件就是ID存在于T2表中。
    我不知道这样解释,你明白不!
  • ljr1227 (2008-7-07 15:40:57)

    我的理解与三楼斑竹一样,当有结果集的时候就返回常量,无结果集时就为空.
  • 小菜菜 (2008-7-08 09:41:55)

    建议再看看exsits的标准用法。