oracle sql результаты заказа - PullRequest
0 голосов
/ 21 февраля 2020

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

SELECT
    table_to_check.managed_system_serial,
    CASE
        WHEN infraprod.aix_servers.managed_system_serial IS NULL THEN
            'NO'
        ELSE
            'YES'
    END serial_exists,
    name
FROM
    (
        SELECT
            column_value managed_system_serial
        FROM
            TABLE ( sys.odcivarchar2list('BW020', 'D761P', '22DFW', 'BW020') )
    ) table_to_check
    LEFT JOIN infraprod.aix_servers ON table_to_check.managed_system_serial = infraprod.aix_servers.managed_system_serial

Результат выполнения выше:

enter image description here

Я пытаюсь сделать так, чтобы столбец MANAGED_SYSTEM_SERIAL отображался последовательно, поскольку серийные номера уже есть в списке. Чего я хочу добиться, так это:

MANAGED_SYSTEM_SERIAL  NAME     SERIAL_EXISTS
BW020                                NO
D761P                 gmp3dr         YES
22DFW                 PROM1VIOS2     YES
22DFW                 PROM1VIOS1     YES
22DFW                 promdb1        YES
BW020                                NO

* Приведенные выше сериалы - всего лишь пример. Реальное число составляет в целом около 1000.

** Может быть несколько записей на серийный номер, но это не проблема, мне просто нужно, чтобы они отображались в упорядоченных результатах, как они есть в этом списке :

(
    'BW020',
    'D761P',
    '22DFW',
    'BW020'
)

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

Любая помощь приветствуется.

Ответы [ 2 ]

2 голосов
/ 21 февраля 2020

Включить rownum во внутренний запрос и использовать его для сортировки выходных данных:

select t.managed_system_serial, name, 
        case when a.managed_system_serial is null then 'NO' else 'YES' end SERIAL_EXISTS
  from (
    select rownum rn, column_value managed_system_serial 
      from table(sys.odcivarchar2list('BW020', 'D761P', '22DFW', 'BW020'))) t
  left join aix_servers a on a.managed_system_serial = t.managed_system_serial
  order by t.rn

Демоверсия dbfiddle

0 голосов
/ 21 февраля 2020

Вы просто ищете order by?

order by MANAGED_SYSTEM_SERIAL
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...