Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 非聚集索引中null存储的顺序是什么_Sql Server_Sql Server 2008_Indexing - Fatal编程技术网

Sql server 非聚集索引中null存储的顺序是什么

Sql server 非聚集索引中null存储的顺序是什么,sql-server,sql-server-2008,indexing,Sql Server,Sql Server 2008,Indexing,我在非聚集索引中有一些列的值为null,其中一个是expiration date。列中的某些值为null,并且提供了一些值。查询列的方式是检索空值或大于某个过期日期的值。我在索引中使用此列,如果我先用null按降序检索,效率会最高。所以我想我有一个由两部分组成的问题: null以什么顺序存储在非聚集索引中?ASC索引中的第一个为空,描述索引中的最后一个为空?我的一位同事似乎认为,在这两种情况下,null都是先存储的。他还提到,在sql server版本中,null的处理方式是不同的 有没有办法在

我在非聚集索引中有一些列的值为null,其中一个是expiration date。列中的某些值为null,并且提供了一些值。查询列的方式是检索空值或大于某个过期日期的值。我在索引中使用此列,如果我先用null按降序检索,效率会最高。所以我想我有一个由两部分组成的问题:

  • null以什么顺序存储在非聚集索引中?ASC索引中的第一个为空,描述索引中的最后一个为空?我的一位同事似乎认为,在这两种情况下,null都是先存储的。他还提到,在sql server版本中,null的处理方式是不同的
  • 有没有办法在非聚集索引中首先强制为null?这在某种程度上取决于问题1的答案,但为了参数起见,我们可以说索引是按顺序处理的,其中null是ASC顺序中的第一个。有没有一种方法可以创建一个非聚集索引,该索引按降序存储值,但首先使用null

  • 这是非常简单的测试。以下查询中的空行在哪里

    select *
    from
    (
        select SomeVal = 1 union all
        select 2 union all
        select null
    ) x
    order by x.SomeVal desc
    
    
    select *
    from
    (
        select SomeVal = 1 union all
        select 2 union all
        select null
    ) x
    order by x.SomeVal 
    

    这是非常简单的测试。以下查询中的空行在哪里

    select *
    from
    (
        select SomeVal = 1 union all
        select 2 union all
        select null
    ) x
    order by x.SomeVal desc
    
    
    select *
    from
    (
        select SomeVal = 1 union all
        select 2 union all
        select null
    ) x
    order by x.SomeVal 
    

    我读到一些东西,让我觉得null可能不一定按order by的顺序存储,但我找不到一个明确的答案。或者,当然null是排序顺序的一部分(假设查询中有order by)。否则NULL将随机出现在其他排序的列表中。我读到一些东西,认为NULL可能不一定按order by的顺序存储,但我找不到明确的答案。或者,当然NULL是排序顺序的一部分(假设您在查询中有order by)。否则,NULL将随机出现在一个按其他方式排序的列表中。