Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Oracle, SQL] Kolumny jako wiersze wraz z wartościami (PIVOT?)

redie 03 Paź 2017 16:25 636 3
  • #1 03 Paź 2017 16:25
    redie
    Poziom 15  

    Witam,
    próbuję napisać SQLa w ten sposób aby mi zwrócił listę kolumn wraz z wartościami szukanego rekordu, czyli:

    w przykładowej tabeli USERTEST mam takie przykładowe dane (załóżmy że mamy zawsze tylko 1 rekord):

    Kod: sql
    Zaloguj się, aby zobaczyć kod

    A docelowo chcę osiągnąć taki wynik:
    Kod: sql
    Zaloguj się, aby zobaczyć kod

    I nie mam pojęcia jak to zrobić, tzn. aby zapytanie zwróciło mi powyższych 5 rekordów.
    Próbowałem z instrukcją UNPIVOT, a tylko połowicznie zakończyło się to sukcesem, bo mam listę kolumn lecz bez nazw:
    Zapytanie:
    Kod: sql
    Zaloguj się, aby zobaczyć kod

    Wynik:
    Kod: sql
    Zaloguj się, aby zobaczyć kod


    Pomożecie? :)

    Edit:
    O właśnie, jak ktoś ma bazę Oracla to może użyć poniższych skryptów do założenia tabeli i zainsertowania rekordu:
    Kod: sql
    Zaloguj się, aby zobaczyć kod

    0 3
  • #2 20 Paź 2017 15:21
    Luckymag
    Poziom 11  

    Zarówno w T-SQL jak w PL/SQL istnieją komendy PIVOT i UNPIVOT
    Dla PL/SQL są opisane tutaj.

    0
  • #3 20 Paź 2017 15:37
    arnoldziq
    Moderator Programowanie

    No wszystko w porządku, jest PIVOT/UNPIVOT ale jest jedno 'ale'....

    To :

    redie napisał:

    ID FirstName LastName GroupName CoutryName
    1 Jan Kowalski Standard user Poland

    I to:
    redie napisał:
    ColumnName ColumnValue
    ID 1
    FIRSTNAME Jan
    LASTNAME Kowalski
    GROUPNAME Standard user
    COUTRYNAME Poland

    To dokładnie ta sama informacja, zapisana w inny sposób :/

    Żaden PIVOT tutaj nie pomoże, bo tu nie ma co pomagać.
    Wystarczy te dane sczytać normalnym select *... where ID=1 i przedstawić w odpowiedni sposób.

    0
  • #4 20 Paź 2017 15:58
    Luckymag
    Poziom 11  

    tak ale kolega napisał że to tylko przykłądowa tabela i przykładowe dane... Struktura tabeli może więc być nieznana...
    Unpivot zadziała o ile się go wyprodukuje selectem z user_tab_cols.
    I zadziała dla wielu wierszy....

    0