有没有一种方法可以按条件顺序对SQLite SELECT结果值进行排序?

时间:2019-02-01 08:36:56

标签: sqlite sql-order-by conditional-statements where

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

在查询多个条件时,我希望所选条目按where条件的顺序排序。

数据库:

first

查询:

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

1 个答案:

答案 0 :(得分:0)

您可以这样定义order by

order by 
  case Itemnumber 
    when '00000021' then 0
    when '00000015' then 1
    when '00000018' then 2
  end;