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

在SQLite中不同方向的不同列上的ORDER BY

尉迟京
2023-03-14
问题内容

我有一个表,定义如下:

    CREATE TABLE bar_table (
        _id INTEGER NOT NULL PRIMARY KEY,
        index INTEGER NOT NULL DEFAULT '65535',
        _date DATE
    )

我的基本选择语句是:

SELECT * FROM bar_table ORDER BY <your-clause-here>

如何按索引升序和日期降序对选择进行排序?即小索引先于大索引。如果两个索引相同,则以较晚的日期为准。

文档将我指向COLLATion,但是我不确定那是什么。


问题答案:

虽然我知道您已经在这里有了自己的答案,但我认为在这里工作的细节很重要。

首先,该order by子句按指定的列或表达式的顺序排列。在这种情况下:

order by index asc, _date desc

index从小到大(asc结尾), 然后
_date从大到小(desc结尾)排序。虽然asc它是默认值,但是当我有多个列的方向相反时,通常会包括它,就像您在此处所做的那样。

您还可以在order by以下内容中包含表达式:

order by case when index < 0 then 1 else 0 end desc, _date desc

这会将所有否定index行放在顶部,然后按进行排序_dateorder by在某些情况下,在子句中使用表达式非常有效。

现在,您提到了collat​​ion,以及关于它的一些困惑。排序规则是数据库在字符串比较中如何处理大写字母和重音符号。使用大小写敏感的排序规则,'abc' != 'ABC'。但是,对于不区分大小写的排序规则,'abc' = 'ABC'

应该注意的是,归类 不是 字符集。通常由数据类型决定(varchar== ASCII,nvarchar==
Unicode)。排序规则确定如何比较字符串,而不是确定可以使用哪些字符集。

而且,对于某些语言,排序规则也很重要。给定拉丁文排序规则,您只需要担心大小写和重音符号,但考虑到丹麦文的排序规则, 'aa' = '氓'。1因此,您可以看到排序规则在确定不同语言的排序和比较中也起着很大的作用。

排序时的排序规则非常重要,因为它决定了在给定大写字母和重音符号的情况下如何排序字符串。这就是为什么它不断出现在您的搜索中。整理很重要,它甚至在本周影响了StackOverflow!

1 :感谢Michael Madsen指出了这个具体示例。



 类似资料:
  • 问题内容: 我有这样的CSS声明: 这里的font1是嵌入式的eot / ttf字体,但问题是该字体比其他字体要小,所以我想为此字体(font1)使用不同的字体大小(1.8em)。所有其他字体(font2,font3)保持不变。 问题是,我无法验证用户的浏览器是使用font1,font2还是font3。是否有任何CSS声明允许不同家族使用不同的字体大小? 谢谢。 问题答案: 这里 是 一个办法做到

  • 类别表 元表 meta和cats表公共是c_id meta表cats c_id(1)meta表有2(Abhijit1,Abhijit2)行和m_id(1,2) 事务表 交易和元表通用的是m_id交易m_id 1有两行t_id(1,2)。此表主要用于支付金额和日期 我想为每个类别求和()所有成本(从元表)和金额(从事件表)。 表与 这是错的。猫的成本ID 1是300,但这里我有400 这里的总和(m

  • 问题内容: 我是Oracle的新手。我有一个Oracle表有三列:,和。在第三列中的行具有值,或 。 我想使用count运行查询,以显示可维修的数量,正在维修的数量,针对每个项目类别的谴责数量。 我想运行类似的东西: 我无法在计数内运行内部查询。 这是我希望结果集看起来像的样子: 问题答案: 您可以在COUNT函数中使用CASE或DECODE语句。 输出:

  • 假设我有一个,我想把它写到多个BigQuery表中,为每个选择一个可能不同的表。 如何使用Apache BeamAPI来完成此操作?

  • 我有以下代码。。。 } ...如果我想返回与WHERE条件匹配的行的总数,这样做很好。 但是,我只想计算这3列中具有不同/唯一数据组合的记录:C_URI、C_BYTE_START_NUM和C_NUM_BYTES。 我知道我可以做一些像。。。 ...但是我希望在这种情况下有更有效的方法来执行不同的计数?? 为了增加清晰度,如果我的表中有这些数据… C_URI |C_BYTE_START_NUM |C

  • 我们在一个基于Swing/Spring的大型应用程序中看到以下异常。该错误发生在用户交互过程中,触发Spring通过commons logging报告警告,后者反过来调用log4j。不幸的是,我无法将这个问题分解为一个独立的示例。 Windows XP SP3、log4j-1.2.17、commons-logging-1.1.1、spring-4.1.2上的Java 8u40 未使用OSGI、we