请教这两个查询的不同点,机制是什么?select t.dummy, decode(count('1'), null,0, 1) from dual t where 1 = 0 group by t.dummy;select decode(count('1'), null,0, 1) from dual t where 1 = 0;select

解决方案 »

  1.   

    sql的底层,是先按where来筛选数据。
    你的此二,语句
      

  2.   

    为什么group by执行后就是查询记录而不是返回函数结果了
      

  3.   

    group by 是分组,对select后所有除函数外的列分组后,再对每一组进行函数运算,函数作用范围为每个组。第二个select除了函数外没有列了,这时函数作用于整个表
      

  4.   


    说白了,你的t.dummy是null,也就是说group by null,当然就没有任何数据了