Trong bài viết này, chúng ta sẽ xem, cách chuyển đổi Hàng thành Cột trong SQL Server. Trong một bảng có nhiều cột có cùng một dữ liệu cho nhiều mục trong bảng, nên chuyển đổi các hàng thành cột. Điều này sẽ giúp thu gọn bảng và làm cho bảng dễ đọc hơn
Thường được yêu cầu lấy thông tin thích hợp được kết nối với dữ liệu hàng cần thiết được hiển thị dưới dạng cột. Hãy cho chúng tôi hiểu làm thế nào để thực hiện điều này
Tuy nhiên, trước khi bắt đầu, chúng tôi sẽ tạo một tập dữ liệu giả để làm việc với. Ở đây, chúng ta sẽ tạo một bảng,
SELECT * FROM student_details;
0, cùng với một vài hàng-- create the table student_details
CREATE TABLE student_details[
stu_id int,
stu_firstName varchar[255] DEFAULT NULL,
stu_lastName varchar[255] DEFAULT NULL,
primary key[stu_id]
];
-- insert rows to the table student_details
INSERT INTO student_details[stu_id,stu_firstName,stu_lastName]
VALUES[1,"Preet","Sanghavi"],
[2,"Rich","John"],
[3,"Veron","Brow"],
[4,"Geo","Jos"],
[5,"Hash","Shah"],
[6,"Sachin","Parker"],
[7,"David","Miller"];
Truy vấn trên tạo một bảng và các hàng có họ và tên của học sinh. Để xem các mục trong dữ liệu, chúng tôi sẽ sử dụng đoạn mã sau
SELECT * FROM student_details;
Đoạn mã trên sẽ cho đầu ra sau
stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
Chuyển đổi hàng thành cột trong MySQL bằng câu lệnh SELECT * FROM student_details;
1
SELECT * FROM student_details;
Cú pháp cơ bản của kỹ thuật
SELECT * FROM student_details;
1 có thể được minh họa như sauSELECT
column_name
SUM[CASE WHEN stu_firstName = "Preet" THEN 1 ELSE 0 END] AS Preet_Present
FROM
table_name
GROUP BY
column_name;
Bây giờ, chúng ta hãy kiểm tra xem các học sinh có tên
SELECT * FROM student_details;
3, SELECT * FROM student_details;
4 và SELECT * FROM student_details;
5 có mặt trong lớp hay không. Ngoài ra, chúng tôi sẽ cố gắng hiển thị kết quả sao cho các hàng được chuyển đổi thành các cột bằng kỹ thuật nêu trênThao tác này có thể được thực hiện bằng cách sử dụng truy vấn sau,
-- create the table student_details
CREATE TABLE student_details[
stu_id int,
stu_firstName varchar[255] DEFAULT NULL,
stu_lastName varchar[255] DEFAULT NULL,
primary key[stu_id]
];
-- insert rows to the table student_details
INSERT INTO student_details[stu_id,stu_firstName,stu_lastName]
VALUES[1,"Preet","Sanghavi"],
[2,"Rich","John"],
[3,"Veron","Brow"],
[4,"Geo","Jos"],
[5,"Hash","Shah"],
[6,"Sachin","Parker"],
[7,"David","Miller"];
0Như chúng ta có thể thấy, trong truy vấn ở trên, chúng ta muốn chuyển đổi các hàng thành các cột là
SELECT * FROM student_details;
6, SELECT * FROM student_details;
7 và SELECT * FROM student_details;
8. Đầu ra của truy vấn được đề cập ở trên được minh họa như sau-- create the table student_details
CREATE TABLE student_details[
stu_id int,
stu_firstName varchar[255] DEFAULT NULL,
stu_lastName varchar[255] DEFAULT NULL,
primary key[stu_id]
];
-- insert rows to the table student_details
INSERT INTO student_details[stu_id,stu_firstName,stu_lastName]
VALUES[1,"Preet","Sanghavi"],
[2,"Rich","John"],
[3,"Veron","Brow"],
[4,"Geo","Jos"],
[5,"Hash","Shah"],
[6,"Sachin","Parker"],
[7,"David","Miller"];
4Đoạn mã trên đếm số lượng
SELECT * FROM student_details;
9 riêng biệt từ bảng SELECT * FROM student_details;
0, với điều kiện là stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
1 kết thúc bằng stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
2 trong mệnh đề stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
3. Đầu ra của đoạn mã trên như sauSELECT * FROM student_details;
0Ghi chú. Đoạn mã trên đã sử dụng bí danh
4,stu_id stu_firstName stu_lastName 1 Preet Sanghavi 2 Rich John 3 Veron Brow 4 Geo Jos 5 Hash Shah 6 Sachin Parker 7 David Miller
5 vàstu_id stu_firstName stu_lastName 1 Preet Sanghavi 2 Rich John 3 Veron Brow 4 Geo Jos 5 Hash Shah 6 Sachin Parker 7 David Miller
6 với từ khóastu_id stu_firstName stu_lastName 1 Preet Sanghavi 2 Rich John 3 Veron Brow 4 Geo Jos 5 Hash Shah 6 Sachin Parker 7 David Miller
7stu_id stu_firstName stu_lastName 1 Preet Sanghavi 2 Rich John 3 Veron Brow 4 Geo Jos 5 Hash Shah 6 Sachin Parker 7 David Miller
Một giải pháp thay thế cho kỹ thuật
SELECT * FROM student_details;
1 là kỹ thuật stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
3 có thể giúp chúng tôi đạt được kết quả tương tựChuyển đổi hàng thành cột trong MySQL bằng câu lệnh stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
3
stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
Câu lệnh
stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
3 lọc dữ liệu dựa trên một điều kiện cụ thể hoặc một tập hợp các điều kiện trong MySQL. Cú pháp cơ bản chuyển hàng thành cột trong MySQL sử dụng câu lệnh stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
3 có thể minh họa như saustu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
0Như truy vấn ở trên cho thấy, chúng tôi đã thực hiện thao tác
SELECT
column_name
SUM[CASE WHEN stu_firstName = "Preet" THEN 1 ELSE 0 END] AS Preet_Present
FROM
table_name
GROUP BY
column_name;
3 khi điều kiện stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
3 trả về SELECT
column_name
SUM[CASE WHEN stu_firstName = "Preet" THEN 1 ELSE 0 END] AS Preet_Present
FROM
table_name
GROUP BY
column_name;
5. Khi điều kiện stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
3 trả về SELECT
column_name
SUM[CASE WHEN stu_firstName = "Preet" THEN 1 ELSE 0 END] AS Preet_Present
FROM
table_name
GROUP BY
column_name;
7, chúng tôi thực hiện thao tác SELECT
column_name
SUM[CASE WHEN stu_firstName = "Preet" THEN 1 ELSE 0 END] AS Preet_Present
FROM
table_name
GROUP BY
column_name;
8Chúng tôi có thể sử dụng truy vấn bên dưới cho bảng
SELECT * FROM student_details;
0 của mình để có được kết quả mong muốnstu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
8Đầu ra của truy vấn trên có thể được minh họa như sau
SELECT * FROM student_details;
0Do đó, với sự trợ giúp của các câu lệnh
SELECT * FROM student_details;
1 và stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
3, chúng ta có thể chuyển đổi hàng thành cột trong MySQL một cách hiệu quả