Sql 更改oracle版本会改变按workd排序的方式吗?
在我工作的地方,oracle已经从10g升级到12c,现在我的sql查询工作方式与预期不同。这真的很小,所以不是什么大问题,但我很好奇 之前按姓名订购后,我会:Sql 更改oracle版本会改变按workd排序的方式吗?,sql,oracle,Sql,Oracle,在我工作的地方,oracle已经从10g升级到12c,现在我的sql查询工作方式与预期不同。这真的很小,所以不是什么大问题,但我很好奇 之前按姓名订购后,我会: name aaa aab aa z 按字母顺序排序时,似乎没有考虑空格 现在我有这样的东西: Name aaa aa z aab 有什么原因可以解释这个组合吗?我打赌在升级过程中默认的排序规则被更改了。您应该向DBA询问当前和以前的默认排序规则 排序规则设置控制字符字符串的排序方式 另外,我想我记得也
name
aaa
aab
aa z
按字母顺序排序时,似乎没有考虑空格
现在我有这样的东西:
Name
aaa
aa z
aab
有什么原因可以解释这个组合吗?我打赌在升级过程中默认的排序规则被更改了。您应该向DBA询问当前和以前的默认排序规则 排序规则设置控制字符字符串的排序方式
另外,我想我记得也可以为每个表设置排序规则,以避免使用默认的排序规则,但我不确定。我打赌在升级过程中,默认的排序规则已更改。您应该向DBA询问当前和以前的默认排序规则 排序规则设置控制字符字符串的排序方式
此外,我想我还记得,也可以为每个表设置排序规则,以避免使用默认的排序规则,但我不确定。当11g问世时,Oracle更改了
分组方式的行为。在10g和早期版本的Oracle分组依据
隐含的排序依据
——换句话说,如果执行了分组依据
,则结果按分组字段排序。从11g开始,情况不再如此。修复方法是在出现分组依据时,在任何地方添加一个订单依据
祝你好运。当11g问世时,甲骨文改变了集团的行为。在10g和早期版本的Oracle分组依据
隐含的排序依据
——换句话说,如果执行了分组依据
,则结果按分组字段排序。从11g开始,情况不再如此。修复方法是在出现分组依据时,在任何地方添加一个订单依据
祝您好运。NLS设置是否已更改。您可以运行选择名称,从表中转储(名称)并将其结果附加到问题中吗?@Alex Poole NLS设置不应该更改,我将尝试查找有关此的更多信息。@krokodilko我想我不能。。。有机密数据,请确认您得到的是“aaa”和“aab”之间的“AAZ”排序?如果是这样的话,您能否询问DBA是否有人在使用LocaleBuilder进行任何操作?如果不是,我会使用@krokodilko和dump()
这个值,以确保它确实是一个空格,而不是像“a”那样排序的特殊字符,但是您的客户端没有打印。NLS设置是否更改了。您可以运行选择名称,从表中转储(名称)并将其结果附加到问题中吗?@Alex Poole NLS设置不应该更改,我将尝试查找有关此的更多信息。@krokodilko我想我不能。。。有机密数据,请确认您得到的是“aaa”和“aab”之间的“AAZ”排序?如果是这样的话,您能否询问DBA是否有人在使用LocaleBuilder进行任何操作?如果不是,我会使用@krokodilko和dump()
这个值,以确保它确实是一个空格,而不是像“a”那样排序的特殊字符,但您的客户机没有打印。在12.2中,排序规则可以设置为每列。@WernfriedDomscheit-*8-)在12.2中,可以为每列设置排序规则。@WernfriedDomscheit-*8-)OP没有说他使用的是groupby
,但我敢打赌5美元,你得到了正确的答案。我同意,他没有,但这是我能记得的唯一可能导致这种情况的原因。9i和10g之间的变化不是吗?很久以前。。。但问题表明(在标题和正文中)已经有一个明确的ORDERBY子句,所以这不重要。@AlexPoole:meh。你可能是对的。这就是我信任自己的记忆所得到的。现在…重要的问题…我午餐吃了什么…?我经历了从8i迁移到10g的过程,但OP说他已经从10g迁移到12c了,我想可能不是这个。但是这是非常值得OP看的。OP没有说他使用的是groupby
,但我敢打赌5美元,你得到了正确的答案。我同意,他没有,但这是我能记得的唯一可能导致这种情况的原因。9i和10g之间的变化不是吗?很久以前。。。但问题表明(在标题和正文中)已经有一个明确的ORDERBY子句,所以这不重要。@AlexPoole:meh。你可能是对的。这就是我信任自己的记忆所得到的。现在…重要的问题…我午餐吃了什么…?我经历了从8i迁移到10g的过程,但OP说他已经从10g迁移到12c了,我想可能不是这个。但是值得一看。