Chuyển Dòng Thành Cột Sử Dụng ROW_NUMBER() - AutoCode News
Có thể bạn quan tâm
Hôm nay The Code Root sẽ hướng dẫn bạn cách chuyển dữ liệu từ dòng thành cột thông qua việc sử dụng ROW_NUMBER() trong SQL Server. Vấn đề này cũng khá đơn giản, tuy nhiên chắc chắn các bạn sẽ có lúc cần dùng đến trong quá trình làm dự án thực tế.
Giả sử chúng ta có dữ liệu như sau:
Và mong muốn chuyển lại thành:
Chúng ta sẽ giải quyết vấn đề này, trước hết tạo table tạm để test data:
CREATE TABLE Test (GroupName varchar(8), ID int) GO INSERT INTO Test SELECT 'Group1', 1 UNION ALL SELECT 'Group1', 2 UNION ALL SELECT 'Group1', 3 UNION ALL SELECT 'Group1', 4 UNION ALL SELECT 'Group2', 1 UNION ALL SELECT 'Group2', 2 UNION ALL SELECT 'Group2', 3Tiếp theo để chuyển dữ liệu từ dòng thành cột, mong muốn mỗi group thành 1 dòng và có các cột tương ứng, các bạn xem hướng dẫn bên dưới:
SELECT GroupName, MAX(CASE WHEN seq = 1 THEN ID ELSE NULL END) AS ID1, MAX(CASE WHEN seq = 2 THEN ID ELSE NULL END) AS ID2, MAX(CASE WHEN seq = 3 THEN ID ELSE NULL END) AS ID3, MAX(CASE WHEN seq = 4 THEN ID ELSE NULL END) AS ID4 FROM (SELECT GroupName, ID, ROW_NUMBER() OVER(PARTITION BY GroupName ORDER BY ID) seq FROM Test ) tmp GROUP BY GroupNameỞ đây, chúng ta sử dụng hàm ROW_NUMBER() trong SQL Server để đánh thứ tự cột. Trong đó:
Partition by: group dữ liệu theo cột. Order by: sắp xếp thứ tự trong phạm vi được qui định trong Partition by, tương tự như các dùng Order by trong câu truy vấn. Ở đây mục đích là đánh số thứ tự tăng dần theo GroupName.
Chúc các bạn thành công!
AutoCode.VN
Từ khóa » Tách Cột Trong Sql
-
Tách Một Cột (tên) Thành Hai (tên, Họ) Trong SQL - HelpEx
-
[SQLSERVER] Hướng Dẫn Tách Họ Và Tên Ra Khỏi ... - Lập Trình VB.NET
-
[SQLSERVER] Hướng Dẫn Tách Họ Và Tên Ra Khỏi ... - Code 24h
-
Chia Chuỗi Trong Một Cột Thành Nhiều Cột Trong Sql Server
-
ALTER TABLE DROP COLUMN Trong SQL Server
-
ALTER TABLE ADD Column Trong SQL Server
-
Làm Thế Nào để Tách Một Chuỗi Theo Một Biểu đồ được Phân Cách ...
-
Hàm SUBSTRING Trong SQL Server
-
Sao Chép / Dán Dữ Liệu Từ SQL Server Sang Excel Có Phân Tách Văn ...
-
Phân Tách Một Chuỗi Ngăn Cách Bởi Dấu Phẩy Và Chuyển Vào Mệnh ...
-
Nối Chuỗi CONCAT Tùy Biến Tên Cột Với AS Và Toán Tử Số Học SQL
-
KB4054035-khắc Phục Sự Cố: Lỗi 213 Khi Bạn Phối Hoặc Phân Tách ...
-
Dùng Một Truy Vấn Hợp để Kết Hợp Nhiều Truy Vấn Vào Một Kết Quả đơn
-
Chuỗi Phân Tách T-SQL Dựa Trên Dấu Phân Cách
-
SQL Server - Tạo Truy Vấn Tách Họ Chữ Lót Và Tên (2) - YouTube
-
SQL Server: Hàm Xử Lý Chuỗi | V1Study
-
Tổng Hợp Những Câu Lệnh SQL Cơ Bản | TopDev
-
Hướng Dẫn Cách Tách Quận Huyện Thành Phố Ra Riêng Từng Cột Trong ...
-
Lệnh SELECT Trong SQL Server - Vi