如何将时间维度按照我从excel电子表格导入SQL Server的顺序排列?
我将时间维度从excel电子表格导入SQL Server 时间维度开始日期为2005-07-01至2025-12-31(澳大利亚格式) Tha属性由以下部分组成: 时间键日期日期\u名称年份\u名称半年\u名称半年\u名称季度\u名称和所有会计属性 无论如何,当我在excel电子表格中创建这个TimeDim时,它是有序的,从2005年7月1日到2025年12月31日安排得很好。我在sql server中导入了电子表格,然后使用select*from TimeDim进行查询 结果混乱,日期混乱 有没有办法解决这个问题?我愿意截断或删除表格,然后再次导入电子表格,只要它能解决问题 非常感谢如何将时间维度按照我从excel电子表格导入SQL Server的顺序排列?,sql,sql-server,excel,Sql,Sql Server,Excel,我将时间维度从excel电子表格导入SQL Server 时间维度开始日期为2005-07-01至2025-12-31(澳大利亚格式) Tha属性由以下部分组成: 时间键日期日期\u名称年份\u名称半年\u名称半年\u名称季度\u名称和所有会计属性 无论如何,当我在excel电子表格中创建这个TimeDim时,它是有序的,从2005年7月1日到2025年12月31日安排得很好。我在sql server中导入了电子表格,然后使用select*from TimeDim进行查询 结果混乱,日期混乱 有
BEU表存储数据的顺序取决于您定义的
聚集索引
但是,即使为日期列定义聚集索引,仅选择整个表也不能保证数据将按该顺序返回
确保按所需顺序选择数据的唯一方法是在select语句中指定order by
子句。表存储数据的顺序取决于您定义的聚集索引
但是,即使为日期列定义聚集索引,仅选择整个表也不能保证数据将按该顺序返回
确保按所需顺序选择数据的唯一方法是在select语句中指定order by
子句。谢谢。你有一个观点,但不是每个用户都知道TimeKey的订单,大多数用户(来自会计、财务部门)只知道TimeDim中的select*。如果我在SQL Server中使用“从excel复制然后粘贴”选项,会怎么样?这行吗?@BeauAlagan-即使这样将表中的所有行按您想要的顺序排列,也没有帮助:1)服务器实际上不需要按该顺序存储,2)您无法控制的因素可能会改变“当前最快”的检索顺序,即,如果其他人首先执行一个导致不同顺序的查询,并且表位于内存中,那么您可能会得到该版本!SQL中获取特定订单的唯一可靠方法是使用orderby
,period。其他任何事情都是纯粹的偶然。我所做的是添加了一个时间键,我将它设置为主键。将其设置为整数数据类型,然后取消选中空值。现在它的顺序是正确的,即使没有添加ORDERBY语句。如果你认为这样做会有相应的影响,请告诉我。非常感谢。事实上,如果不指定订单,则无法保证订单。它可能会在某些时候,甚至大多数时候,以所需的顺序返回,但不能保证。就是这样,谢谢你。你有一个观点,但不是每个用户都知道TimeKey的订单,大多数用户(来自会计、财务部门)只知道TimeDim中的select*。如果我在SQL Server中使用“从excel复制然后粘贴”选项,会怎么样?这行吗?@BeauAlagan-即使这样将表中的所有行按您想要的顺序排列,也没有帮助:1)服务器实际上不需要按该顺序存储,2)您无法控制的因素可能会改变“当前最快”的检索顺序,即,如果其他人首先执行一个导致不同顺序的查询,并且表位于内存中,那么您可能会得到该版本!SQL中获取特定订单的唯一可靠方法是使用orderby
,period。其他任何事情都是纯粹的偶然。我所做的是添加了一个时间键,我将它设置为主键。将其设置为整数数据类型,然后取消选中空值。现在它的顺序是正确的,即使没有添加ORDERBY语句。如果你认为这样做会有相应的影响,请告诉我。非常感谢。事实上,如果不指定订单,则无法保证订单。它可能会在某些时候,甚至大多数时候,以所需的顺序返回,但不能保证。事情就是这样。