2016-05-12 1 views
0

У меня есть требование отобразить один столбец в таблице матриц.преобразование одного столбца в равные строки в Oracle

например:

Select SlotNumber from Parking_lot_table; 

из:

SL01 
SL02 
SL03 
SL04 
SL05 
SL06 
SL07 
SL08 
SL09 
SL10 

Мой выход должен быть, как:

Col1 Col2 Col3 Col4 Col5 
SL01 SL02 SL03 SL04 SL05 
SL06 SL07 SL08 SL09 SL10 

даже его штраф, чтобы зафиксировать число столбцов ...

Просьба предложить ... Как сделать это в Oracle SQL

+0

вы можете использовать [стержень] (http://www.oracle.com/technetwork/articles/sql/11g-pivot-097235.html) функциональность – SomeJavaGuy

+0

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

+0

Привет, Кевин, спасибо за быстрый ответ .... Я буду google на этом ... если у вас есть образец с добрым делом ... –

ответ

1
select * from 
(select trunc((rownum -1)/5) gr , mod(rownum, 5) rn, slot 
    from 
    (select * from 
    parking_lot_table order by to_number(REGEXP_REPLACE(slot, '[^0-9]+', '')) 
) 
) 
    pivot 
    ( max(slot) 
    for rn in (1 as Col1, 2 as Col2, 3 as Col3, 4 as Col4, 0 as Col5)) 
    order by 1 
+0

привет dcieslak, решение, похоже, точно соответствует моему требованию, однако оно работает сортируя его так же, как и то, что я разместил ... Большое спасибо за хэдшоп, что тоже с прямым запросом ... –

+0

Я добавил сортировку по числу, которое извлекается из поля slot. – dcieslak

+0

Woow ... он работает Great :) нет слов, чтобы поблагодарить вас! dcieslak Счастливое кодирование! –

Смежные вопросы