当前位置: 首页 > 面试题库 >

如何首先使用Oracle SQL查询按数字排序?

应向晨
2023-03-14
问题内容

我有一个带有“标题”字段的表,该字段是varchar2,我想选择所有行,然后按通常的顺序先按数字然后按字母对它们进行排序

例如,我目前ORDER BY title最后使用一个简单的代码:

  • 美国广播公司
  • 国防部
  • 321

但是我想要这个:

  • 321
  • 美国广播公司
  • 国防部

奇怪的是,SQL Developer显示“正确”的顺序,以数字开头。但是在我的应用程序(使用OCI8的PHP)上,它最后显示数字。


问题答案:

不是Oracle专家,但您应该能够做到这一点而无需更改会话

SELECT * FROM my_data SORT by NLSSORT(title,鈥橬LS_SORT=BINARY_AI鈥�)

您可以在其中更改NLS_SORT=以适合您的需求(这是值列表)

请记住,文档说这将强制进行表扫描,因此首先过滤它们可能会有所帮助(但是如果您选择所有表扫描,无论如何您将要使用它们)。

SQL Developer表现出不同行为的原因可能是因为它更改了会话。



 类似资料:
  • 问题内容: 我有一个包含3列的表格: 我想使用以下顺序来排序结果集,但首先要优先考虑那些具有较低优先级的行。结果应如下所示 问题答案: 还有MySQL 函数。 如果要对所有可能的值进行完整排序: 如果您只关心“核心”在前,而其他值则无关紧要: 如果要先按“核心”排序,然后按正常排序顺序按其他字段排序: 不过,这里有一些警告: 首先,我很确定这是仅mysql的功能-问题被标记为mysql,但您永远不

  • 您好,我是DynamoDB新手,我创建了一个表,其中包含分区键“pk”和排序键“id” 在then item explorer中,我可以用pk进行查询并对键值进行排序,这似乎很有效。 在PartiQL编辑器中我做 我得到的错误过滤器表达式只能包含非主键属性:主键属性:id 我不知道如何在键条件中指定排序键,而不是使用WHERE子句指定筛选条件。

  • 问题内容: 一个菜鸟问题! 我写了这个查询,但是“分组依据”非常愚蠢……所以,我该如何纠正呢? 欢迎提供不同的解决方案和有关性能的信息(也许使用DISTINCT?) 提前致谢! 问题答案: 这应该和其他选项一样好- 如果您想一次只对一个字母运行此查询,则可以添加WHERE子句并删除GROUP BY-

  • 问题内容: 我正在尝试做一个标准查询,该查询返回像常见问题一样的stackoverflow中回答最多的问题。 一个问题包含多个答案。 我试图以标准查询返回按每个问题的答案数排序的最常回答的问题。 有人知道我应该在hibernate标准util中使用什么吗? 问题答案: 这将返回一个Object []列表。每个Object []都将问题的ID作为第一个元素,并将此问题的答案数目作为第二个元素。问题按

  • 我有一篇有三个元域的帖子。 我想查询这个类别,并根据其中一个的元字段值对帖子进行排序。我现在使用的参数是: 其中times是元字段的名称。上面的代码没有返回任何内容。

  • 问题内容: 谁能指出我如何将order by子句作为命名参数传递给HQL? 有效的示例: 无效的示例: 问题答案: 不支持,只能在and 子句中使用输入参数,并且不能为子句使用参数。或者,如果我改写,您不能对列使用参数,只能对值使用。因此,要么: 有尽可能多的命名查询排序顺序 将排序字符串连接到查询字符串 使用条件查询