2017-02-20 3 views
3

У меня есть таблица, содержащая две колонки. Мне нужно получить содержимое двух столбцов в один столбец, используя запрос Oracle.Как получить записи из столбцов в один столбец по порядку?

FirstName  LastName 
Naveen   Bharadwaj 
Usain   Bolt 

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

Name 
Naveen 
Bharadwaj 
Usain 
Bolt 

P.S: Я не могу использовать функцию декодирования

ответ

1

Используйте этот запрос для желаемого результата,

SELECT Name FROM TableName UNPIVOT (Name FOR NAME IN (FirstName,LastName)); 

Надеется, что это помогает!

0

() Для того, чтобы получить записи в одну колонку, вы можете использовать the UNION ALL operator.

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

Так, что-то вроде этого:

SELECT fullname 
FROM (
    SELECT 1 AS name_type, 
    name_id, 
    firstname AS fullname 
    FROM yourtable 
    UNION ALL 
    SELECT 
    2, 
    name_id, 
    lastname 
    FROM yourtable 
) sub 
ORDER BY sub.name_id, sub.name_type; 

name_type указывает 1 для имени и 2 для последнего имени, которое используется для упорядочения и сохранить первое имя в верхней части фамилии. Подзапрос используется, потому что вы хотите отображать только имя, но заказывать другие столбцы.

Я бы предложил использовать UNION ALL вместо UNION, потому что могут быть дубликаты, которые вы хотите сохранить, и поэтому производительность может быть лучше.

+0

Извините, что набрал этот вопрос на мобильном телефоне, и возникла проблема с форматированием. Результат, который я желаю, отредактирован в вопросе. Имя и фамилия в виде новых строк. – NaveenBharadwaj

+0

А, я вижу. Я уточню свой ответ. – bbrumm

+0

Спасибо. Но запрос возвращает результаты в неправильном порядке. Приказ: «Naveen, Usain, Bharadwaj, Bolt» Ожидаемое действие: «Naveen, Bharadwaj, Usain, Bolt» – NaveenBharadwaj