упорядочение результатов полного объединения в sql - PullRequest
0 голосов
/ 03 января 2012

У меня есть 2 таблицы, для которых я выполняю полное внешнее соединение. У обеих таблиц есть столбец отметки времени. Я хочу, чтобы результат объединения был упорядочен по метке времени. например, у таблицы a есть строки

Таблица A

X           timestamp           
92408413    12/22/2011 11:23:36 AM  
92408414    12/22/2011 11:23:40 AM
92408417    12/22/2011 11:23:45 AM
92408419    12/22/2011 11:23:49 AM
92408423    12/22/2011 11:23:55 AM
92408424    12/22/2011 11:23:57 AM
92408426    12/22/2011 11:24:01 AM
92408427    12/22/2011 11:24:09 AM
92408430    12/22/2011 11:24:33 AM
92408435    12/22/2011 11:25:03 AM
92408437    12/22/2011 11:25:13 AM
92408497    12/22/2011 11:31:09 AM
92408498    12/22/2011 11:31:10 AM
92408499    12/22/2011 11:31:12 AM

стол B

Y               X                timestamp
5020926963  92408430    12/22/2011 11:24:33 AM
5020926968  92408435    12/22/2011 11:25:03 AM
5020926970  92408435    12/22/2011 11:25:05 AM
5020926972  92408437    12/22/2011 11:25:14 AM
5020926981  -1      12/22/2011 11:31:09 AM
5020926982  -1      12/22/2011 11:31:10 AM
5020926984  92408499    12/22/2011 11:31:12 AM

Теперь, если мой запрос выглядит примерно так:

SELECT * 
FROM   tablea 
       FULL OUTER JOIN tableb 
         ON tablea.x = tableb.x 
            AND tablea.w = tableb.w 
WHERE  tablea.x = 'somevalue' 
        OR tableb.x = 'somevalue' 
ORDER  BY tablea.timestamp, 
          tableb.timestamp  

Результат запроса:

92408413    12/22/2011 11:23:36 AM      
92408414    12/22/2011 11:23:40 AM      
92408417    12/22/2011 11:23:45 AM      
92408419    12/22/2011 11:23:49 AM      
92408423    12/22/2011 11:23:55 AM      
92408424    12/22/2011 11:23:57 AM      
92408426    12/22/2011 11:24:01 AM      
92408427    12/22/2011 11:24:09 AM      
92408430    12/22/2011 11:24:33 AM  5020926963  12/22/2011 11:24:33 AM
92408435    12/22/2011 11:25:03 AM  5020926968  12/22/2011 11:25:03 AM
92408435    12/22/2011 11:25:03 AM  5020926970  12/22/2011 11:25:05 AM
92408437    12/22/2011 11:25:13 AM  5020926972  12/22/2011 11:25:14 AM
92408497    12/22/2011 11:31:09 AM      
92408498    12/22/2011 11:31:10 AM      
92408499    12/22/2011 11:31:12 AM  5020926984  12/22/2011 11:31:12 AM
                                5020926981      12/22/2011 11:31:09 AM
                                5020926982  12/22/2011 11:31:10 AM

Теперь этот запрос сначала упорядочивает по таймстампу Таблицы, а затем по Таблице В. Я хочу, чтобы результат был упорядочен по метке времени (в порядке времени). Так что в основном порядок по (TableA.timestamp + TableB.timestamp) Как вы можете видеть, в таблице A есть строка, где отметка времени '92408497 22.12.2011 11:31:09' Я хочу, чтобы в следующей строке результата был столбец из таблицы B с той же отметкой времени '5020926981 -1 22.12.2011 11:31:09'

Я нахожусь в базе данных Oracle 11.2.

Спасибо

1 Ответ

9 голосов
/ 03 января 2012
order by coalesce (table1.timestamp, table2.timestamp)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...