Есть ли способ упорядочить значения результата SQLite SELECT по условию порядка? - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь получить значения из локальной базы данных SQLite.Записи таблицы упорядочены по номеру элемента ASC.

При запросах с несколькими условиями я хочу, чтобы выбранные записи упорядочивались в соответствии с условиями моих условий.

База данных:

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 Ответ

0 голосов
/ 01 февраля 2019

Вы можете определить order by следующим образом:

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