当前位置: 首页 > 知识库问答 >
问题:

有没有办法按条件顺序排序SQLite选择结果值?

后安民
2023-03-14

我试图从本地SQLite数据库中检索值。表的条目按“itemnumber ASC”排序。

当使用多个条件进行查询时,我希望所选条目按我的where条件的顺序排序。

数据库:

CREATE TABLE `Articles` 
(
    `Itemnumber`    TEXT,
    `Description`   TEXT DEFAULT NULL,
    `Sellingprice_` REAL DEFAULT NULL,
    PRIMARY KEY(`Itemnumber`)
);

INSERT INTO Articles VALUES ('00000015', 'Lorem ipsum', 15.99);
INSERT INTO Articles VALUES ('00000016', 'Lorem ipsum', 16.99);
INSERT INTO Articles VALUES ('00000018', 'Lorem ipsum', 18.99);
INSERT INTO Articles VALUES ('00000019', 'Lorem ipsum', 19.99);
INSERT INTO Articles VALUES ('00000021', 'Lorem ipsum', 21.99);

查询:

SELECT * 
FROM Articles 
WHERE Itemnumber LIKE '00000021'
   OR Itemnumber Like '00000015'
   OR Itemnumber Like '00000018';

结果:

[ITEMNUMBER]    [DESCRIPTION]    [SELLINGPRICE]
  00000015       Lorem ipsum         15.99
  00000018       Lorem ipsum         18.99
  00000021       Lorem ipsum         21.99

但它需要像这样:

[ITEMNUMBER]    [DESCRIPTION]    [SELLINGPRICE]
  00000021       Lorem ipsum         21.99
  00000015       Lorem ipsum         15.99
  00000018       Lorem ipsum         18.99

共有1个答案

隆钊
2023-03-14

您可以这样定义订单:

order by 
  case Itemnumber 
    when '00000021' then 0
    when '00000015' then 1
    when '00000018' then 2
  end;
 类似资料:
  • 问题内容: 当我使用IN从表中选择一组行时,例如 有一种SQL技巧可以按照IN集合中给定的顺序恢复它们吗? 因此,在示例中,假设x具有ID为23、55、44和12的行,则将按该顺序返回这四行。 问题答案:

  • 问题内容: 我认为使用某种顺序才有意义。我想做的是在视图中包括该子句,以便该视图上的所有s都可以忽略它。但是,我担心该订单不一定会延续到,因为它没有指定订单。 是否存在一种情况,即视图指定的顺序不会反映在该视图上的select结果中(该视图中的order by子句除外)? 问题答案: 您不能指望没有显式子句的任何查询中的行顺序。如果查询有序视图,但没有包括子句,则如果它们的顺序正确,请感到惊喜,并

  • 问题内容: 如果我执行,将以什么顺序显示记录?它会采用第一列还是通过某种元数据对其进行排序? 我正在使用Oracle数据库。 问题答案: 有 NO 默认的“排序”命令。关系表 中的 行 未排序 。 获取特定订单的唯一(真正的:唯一)方法是使用 运行无时您看到的任何顺序都是 纯重合的, 并且可以在下一次执行时更改。 订单可能由于多种原因而发生变化: 其他会话运行相同的语句 表格已更新 执行计划改变

  • 问题内容: 我正在尝试获取前N条记录(当按某些X列排序时),但结果设置却相反。以下语句是 不正确的 ,但可能说明了我的追求: 例如,列X可以是ID或时间戳;我想要最新的10条记录,但希望它们按时间先后顺序返回。 问题答案: 也就是说,您可能需要在子查询上使用别名,但除此之外,别名应该可以使用。

  • 问题内容: 我在使用Elasticsearch查询时遇到问题。我希望能够对结果进行排序,但是elasticsearch忽略了排序标签。这是我的查询: 但是,当我删除查询部分并仅发送排序标签时,它就可以工作。谁能指出正确的方法? 我还尝试了以下查询,这是我所拥有的完整查询: 设定值 对应 提前致谢! 问题答案: 文档中的 “标题” 字段是一个 分析的 字符串字段,也是一个多值字段,这意味着Elast

  • 问题内容: 由于某些性能原因,我试图找到一种仅选择所选节点中同级节点的方法。例如, 如果选择了inner1节点,是否可以访问其兄弟节点? 问题答案: 好吧…确定…先拜访父母,再拜访孩子。 或者…使用jQuery: 编辑:Cletus一如既往地鼓舞人心。 我进一步挖掘。这就是jQuery本质上如何获得兄弟姐妹的方式: