Sql server 非聚集索引中null存储的顺序是什么
我在非聚集索引中有一些列的值为null,其中一个是expiration date。列中的某些值为null,并且提供了一些值。查询列的方式是检索空值或大于某个过期日期的值。我在索引中使用此列,如果我先用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的处理方式是不同的 有没有办法在
这是非常简单的测试。以下查询中的空行在哪里
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将随机出现在一个按其他方式排序的列表中。