where条件存在短路规则,特别是OR,只要其中一个条件为true,就返回true,本身好像已经实现你的要求了,但是抛开这个,你的where条件应该意图是返回满足这些数据的所有数据,所以更应该都查询。而不是按顺序,毕竟你这个不是if exists吧

解决方案 »

  1.   

    coalesce返回它的参数中第一个非空表达式。
      SELECT COALESCE(NULL, NULL, NULL, GETDATE())
    它将返回当前的日期。它略过第一个NULL值并返回第一个非空的值。
    2011-09-02 14:37:41.530
      

  2.   

    有上百万条的数据记录,每条记录都有80个字段,且有点字段是xml类型的,占用空间也很大,这样查询的效率会怎么样?感觉很不好,稍微多几个人查询时,sql server 占用cpu就30%~50%。