Замените значения, которые возвращаются из запроса SQL - PullRequest
0 голосов
/ 12 ноября 2018

У меня следующий запрос:

SELECT
    BM.BOOKING_NO, 
    BM.REF, 
    BM.ACCOUNT, 
    BM.NAME, 
    BM.STATUS, 
    BM.DATE_IN, 
    BM.DATE_OUT, 
    BM.TOTNIGHTS, 
    BM.ROOM_NO, 
    BM.TOTFRGN, 
    REC.PRICE_CATAGORY
FROM
    BOOKMASTER BM LEFT JOIN RECEIVABLES REC ON BM.ACCOUNT = REC.ACCOUNT_NO
WHERE
    BM.STATUS = 'CHECK IN'

Столбец REC.PRICE_CATAGORY возвращает одно из трех значений: 1, 2 или 3.

Я хочу заменить его следующими значениями:

  • Если 1, я хочу прочитать 'YES'
  • Если 2, я хочу прочитать 'NO'
  • Если 3, я хочу прочитать 'MAYBE'

Мои результаты возвращаются в электронную таблицу Excel, и поэтому ленивым способом было бы сделать VLOOKUP, но я бы предпочел сделать это внутри запроса.

Мне кажется, что это работа для оператора CASE, но я не уверен на 100%, как построить запрос

Любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Если вы хотите, чтобы столбец представлял собой строковые значения, тогда:

SELECT id, name, CASE WHEN hide = 0 THEN 'false' ELSE 'true' END AS hide FROM anonymous_table Если СУБД поддерживает BOOLEAN, вы можете использовать вместо:

SELECT id, name, CASE WHEN hide = 0 THEN false ELSE true END AS hide ОТ anonymous_table

0 голосов
/ 12 ноября 2018

Вы сделали 50 % в самом вопросе, упомянув выражение case, но вы не знаете реализацию, поэтому вы можете сделать:

SELECT BM.BOOKING_NO, BM.REF, BM.ACCOUNT, BM.NAME, BM.STATUS, BM.DATE_IN, BM.DATE_OUT, BM.TOTNIGHTS, BM.ROOM_NO, BM.TOTFRGN, 
       (CASE REC.PRICE_CATAGORY 
             WHEN 1 THEN 'YES'
             WHEN 2 THEN 'NO'
             WHEN 3 THEN 'MAYBE'
             ELSE 'Whatever you want to print'
        END) AS PRICE_CATAGORY 
FROM BOOKMASTER BM LEFT JOIN 
     RECEIVABLES REC 
     ON BM.ACCOUNT = REC.ACCOUNT_NO
WHERE BM.STATUS = 'CHECK IN';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...