Chuyển hàng thành cột trong PHP

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

Cú pháp cơ bản của kỹ thuật

SELECT * FROM student_details;
1 có thể được minh họa như sau

SELECT
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ên

Thao 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"];
0

Như 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ư sau

SELECT * FROM student_details;
0

Ghi chú. Đoạn mã trên đã sử dụng bí danh

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
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óa
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
7

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

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ư 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
0

Như 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;
8

Chú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ố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
8

Đầu ra của truy vấn trên có thể được minh họa như sau

SELECT * FROM student_details;
0

Do đó, 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ả

Chủ Đề