Oracle
 sql >> база данни >  >> RDS >> Oracle

PIVOT Oracle - преобразувайте данни от няколко реда в един ред с множество колони, без обобщени данни

Не правите нищо с описанието, което също варира в зависимост от етикета. Той не е обобщен, така че е в неявното „групиране по“, така че получавате отделни редове в набора от резултати.

Можете или да заснемете това също с друг (фиктивен) агрегат:

select * from (
  select * from TEST2 where tag in ('LN', 'SN')
)
PIVOT
(
  max(value) as value, max(description) as description
  for tag in ('LN' as ln, 'SN' as sn)
)
order by category, subcat, item, "Date";

Date      SUBCAT CATEGOR IT LN_VALUE          LN_DESCRIPTION  SN_VALUE          SN_DESCRIPTION
--------- ------ ------- -- ----------------- --------------- ----------------- ---------------
24-OCT-13 290223 1219576 25 1105618           Lot Number      3x12mm            Serial Number  
24-OCT-13 290223 1219576 28 1303757           Lot Number                                       
18-JUN-15 354506 1219576 4  1403114           Lot Number                                       
18-JUN-15 354506 1219576 9  7777777777        Lot Number      9.999999999999E12 Serial Number  

Или по-вероятно да го изключите от междинния набор от резултати, ако не го искате, като посочите колоните, които искате, вместо да използвате * :

select * from (
  select category, subcat, item, "Date", tag, value
  from TEST2 where tag in ('LN', 'SN')
)
PIVOT
(
  max(value) for tag in ('LN' as ln, 'SN' as sn)
)
order by category, subcat, item, "Date";

CATEGOR SUBCAT IT Date      LN                SN              
------- ------ -- --------- ----------------- -----------------
1219576 290223 25 24-OCT-13 1105618           3x12mm           
1219576 290223 28 24-OCT-13 1303757                            
1219576 354506 4  18-JUN-15 1403114                            
1219576 354506 9  18-JUN-15 7777777777        9.999999999999E12


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PLSQL Вмъкване в с подзаявка и клауза за връщане

  2. Как да изберете колони от таблица, които имат стойности, различни от null?

  3. ORA-29977:Неподдържан тип колона за регистрация на заявка в гарантиран режим

  4. ORA-00907:Липсваща дясна скоба при създаване на външен ключ Oracle 12c

  5. ORA-00942:таблица или изглед не съществуват ... мога ли да получа повече подробности?