Home Database Oracle How to convert rows to columns in Oracle

How to convert rows to columns in Oracle

Apr 18, 2023 am 09:06 AM

In Oracle database, row conversion is a common data processing requirement. It converts multiple values ​​in a row into multiple values ​​in a column for better presentation and analysis of data.

For example, assume we have the following table:

##1John8070902Lily9085953Tom6075 ##If we want to convert each student's grade into a separate row, we can use row to column to achieve the following result:
ID Name Score1 Score2 Score3
##80

IDNameSubjectScore##1JohnJohnJohn##2Lily Score1902LilyScore2852LilyScore3953TomScore1603TomScore2753TomScore380Use UNPIVOT to transfer rows to columns
Score1 80 1
Score2 70 1
Score3 90
In Oracle, there are several Methods can be used to convert rows to columns, including using UNPIVOT and UNION ALL. Next, we will detail the steps and syntax of each method.
UNPIVOT is a keyword in Oracle SQL that can move columns into rows. Use UNPIVOT query to convert multiple columns into multiple rows. To use UNPIVOT, you first need to ensure that each row in the table has the same number of columns and the same data type.

The following are the steps to use UNPIVOT to convert rows to columns:

Step 1: Create a sample table

First, we need to create a sample table to prepare the data.

CREATE TABLE score (
   ID INT,
   Name VARCHAR2(20),
   Score1 INT,
   Score2 INT,
   Score3 INT
);

INSERT INTO score VALUES (1, 'John', 80, 70, 90);
INSERT INTO score VALUES (2, 'Lily', 90, 85, 95);
INSERT INTO score VALUES (3, 'Tom', 60, 75, 80);
COMMIT;
Copy after login
Copy after login
Step 2: Run the UNPIVOT query

Then, we can use the following UNPIVOT query to transform the data:

SELECT ID, Name, Subject, Score
FROM score
UNPIVOT (
   Score FOR Subject IN (Score1, Score2, Score3)
);
Copy after login
The running results are as follows:

ID

NameSubjectScore1JohnScore1801JohnScore2701JohnScore390Score1Score2Score3Score1##3TomScore2753TomScore380
DROP TABLE score;
Copy after login
Copy after login
Use UNION ALL to convert rows to columns
##2 Lily
90 2 Lily
85 2 Lily
95 3 Tom
60
Step 3: Clear the table Finally, we can clear the data by deleting the table:
UNION ALL too A method used in Oracle SQL to convert rows to columns. Columns can be converted into rows using a UNION ALL query. The following are the steps to use UNION ALL to convert rows to columns:

Step 1: Create a sample table

First, we need to create a sample table to prepare the data.

CREATE TABLE score (
   ID INT,
   Name VARCHAR2(20),
   Score1 INT,
   Score2 INT,
   Score3 INT
);

INSERT INTO score VALUES (1, 'John', 80, 70, 90);
INSERT INTO score VALUES (2, 'Lily', 90, 85, 95);
INSERT INTO score VALUES (3, 'Tom', 60, 75, 80);
COMMIT;
Copy after login
Copy after login
Step 2: Run UNION ALL query

Then, we can use the following UNION ALL query to transform the data:

SELECT ID, Name, 'Score1' Subject, Score1 Score FROM score
UNION ALL
SELECT ID, Name, 'Score2' Subject, Score2 Score FROM score
UNION ALL
SELECT ID, Name, 'Score3' Subject, Score3 Score FROM score
ORDER BY ID, Subject;
Copy after login
The running results are as follows:

ID

Name

SubjectScoreScore180709090859560##3Tom Score2753TomScore380
DROP TABLE score;
Copy after login
Copy after login
Row to column is a common Data processing technology allows us to better display and analyze data. In Oracle SQL, we can use UNPIVOT and UNION ALL to convert rows to columns. By mastering these concepts and related syntax, we can easily process and analyze data in the database.
##1 John
1 John Score2
1 John Score3
2 Lily Score1
2 Lily Score2
2 Lily Score3
3 Tom Score1
Step 3: Clear the table Finally, we can clear the data by deleting the table: Summary

The above is the detailed content of How to convert rows to columns in Oracle. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

What are the oracle database operation tools? What are the oracle database operation tools? Apr 11, 2025 pm 03:09 PM

In addition to SQL*Plus, there are tools for operating Oracle databases: SQL Developer: free tools, interface friendly, and support graphical operations and debugging. Toad: Business tools, feature-rich, excellent in database management and tuning. PL/SQL Developer: Powerful tools for PL/SQL development, code editing and debugging. Dbeaver: Free open source tool, supports multiple databases, and has a simple interface.

How to check tablespace size of oracle How to check tablespace size of oracle Apr 11, 2025 pm 08:15 PM

To query the Oracle tablespace size, follow the following steps: Determine the tablespace name by running the query: SELECT tablespace_name FROM dba_tablespaces; Query the tablespace size by running the query: SELECT sum(bytes) AS total_size, sum(bytes_free) AS available_space, sum(bytes) - sum(bytes_free) AS used_space FROM dba_data_files WHERE tablespace_

Oracle PL/SQL Deep Dive: Mastering Procedures, Functions & Packages Oracle PL/SQL Deep Dive: Mastering Procedures, Functions & Packages Apr 03, 2025 am 12:03 AM

The procedures, functions and packages in OraclePL/SQL are used to perform operations, return values ​​and organize code, respectively. 1. The process is used to perform operations such as outputting greetings. 2. The function is used to calculate and return a value, such as calculating the sum of two numbers. 3. Packages are used to organize relevant elements and improve the modularity and maintainability of the code, such as packages that manage inventory.

Oracle GoldenGate: Real-Time Data Replication & Integration Oracle GoldenGate: Real-Time Data Replication & Integration Apr 04, 2025 am 12:12 AM

OracleGoldenGate enables real-time data replication and integration by capturing the transaction logs of the source database and applying changes to the target database. 1) Capture changes: Read the transaction log of the source database and convert it to a Trail file. 2) Transmission changes: Transmission to the target system over the network, and transmission is managed using a data pump process. 3) Application changes: On the target system, the copy process reads the Trail file and applies changes to ensure data consistency.

How to create oracle database How to create oracle database How to create oracle database How to create oracle database Apr 11, 2025 pm 02:36 PM

To create an Oracle database, the common method is to use the dbca graphical tool. The steps are as follows: 1. Use the dbca tool to set the dbName to specify the database name; 2. Set sysPassword and systemPassword to strong passwords; 3. Set characterSet and nationalCharacterSet to AL32UTF8; 4. Set memorySize and tablespaceSize to adjust according to actual needs; 5. Specify the logFile path. Advanced methods are created manually using SQL commands, but are more complex and prone to errors. Pay attention to password strength, character set selection, tablespace size and memory

How to get time in oracle How to get time in oracle Apr 11, 2025 pm 08:09 PM

There are the following methods to get time in Oracle: CURRENT_TIMESTAMP: Returns the current system time, accurate to seconds. SYSTIMESTAMP: More accurate than CURRENT_TIMESTAMP, to nanoseconds. SYSDATE: Returns the current system date, excluding the time part. TO_CHAR(SYSDATE, 'YYY-MM-DD HH24:MI:SS'): Converts the current system date and time to a specific format. EXTRACT: Extracts a specific part from a time value, such as a year, month, or hour.

How to view instance name of oracle How to view instance name of oracle Apr 11, 2025 pm 08:18 PM

There are three ways to view instance names in Oracle: use the "sqlplus" and "select instance_name from v$instance;" commands on the command line. Use the "show instance_name;" command in SQL*Plus. Check environment variables (ORACLE_SID on Linux) through the operating system's Task Manager, Oracle Enterprise Manager, or through the operating system.

How to learn oracle database How to learn oracle database Apr 11, 2025 pm 02:54 PM

There are no shortcuts to learning Oracle databases. You need to understand database concepts, master SQL skills, and continuously improve through practice. First of all, we need to understand the storage and management mechanism of the database, master the basic concepts such as tables, rows, and columns, and constraints such as primary keys and foreign keys. Then, through practice, install the Oracle database, start practicing with simple SELECT statements, and gradually master various SQL statements and syntax. After that, you can learn advanced features such as PL/SQL, optimize SQL statements, and design an efficient database architecture to improve database efficiency and security.

See all articles