Как получить номер заказа в режиме кейса - PullRequest
0 голосов
/ 29 октября 2019

У меня есть запрос:

SELECT REPLACE(column1,'a','b') AS col ORDER BY CASE 
WHEN col like '%door%' THEN 1
WHEN col like '%window%' THEN 2
WHEN col like '%book%' THEN 3
ELSE 4
END

Я хочу знать, какая строка в заказе № 1, а какая в заказе № 2 и ... как ее найти?

Ответы [ 2 ]

1 голос
/ 29 октября 2019

К вашему комментарию выше, вы можете добавить второе выражение CASE в предложение select:

SELECT
    REPLACE(column1,'a','b') AS col,
    CASE WHEN REPLACE(column1,'a','b') NOT LIKE '%door%' AND
              REPLACE(column1,'a','b') NOT LIKE '%window%'
         THEN 'special message' END AS msg
FROM yourTable
ORDER BY
    CASE WHEN col like '%door%'   THEN 1
         WHEN col like '%window%' THEN 2
         WHEN col like '%book%'   THEN 3
         ELSE 4 END;
0 голосов
/ 03 ноября 2019

для получения номера заказа в этом примере:

SELECT REPLACE(column1,'a','b') AS col, (CASE
    WHEN REPLACE(column1,'a','b') like '%door%' THEN 1
    WHEN REPLACE(column1,'a','b') like '%window%' THEN 2
    WHEN REPLACE(column1,'a','b') like '%book%' THEN 3
    ELSE 4
END) AS ordr
FROM table ORDER BY ordr 
...