首頁 資料庫 SQL sql中如何實現列轉行

sql中如何實現列轉行

Apr 10, 2025 am 09:45 AM
聚合函數

SQL中實現列轉行的操作有兩種方式:使用UNION 操作符通過垂直合併查詢結果實現列轉行。使用PIVOT 函數將列數據轉換為行數據,其中PIVOT 函數的語法為:PIVOT ( aggregate_function(column_name) FOR pivot_column_name IN (value1, value2, ...) ) FROM table_name

sql中如何實現列轉行

SQL 中實現列轉行的操作

列轉行操作,也稱為“解構”或“交叉表”,是指將表中的多列數據轉換為單列行數據。在SQL 中,可以通過UNION 操作符或PIVOT 函數實現此操作。

使用UNION 操作符

UNION 操作符可以將多個查詢結果垂直合併,從而實現列轉行的效果。以下是一個示例:

 <code class="sql">SELECT * FROM table_name UNION SELECT * FROM table_name WHERE column_name1 IS NOT NULL UNION SELECT * FROM table_name WHERE column_name2 IS NOT NULL;</code>
登入後複製

使用PIVOT 函數

PIVOT 函數專門用於轉換數據佈局,可以將列數據轉換為行數據。其語法如下:

 <code class="sql">PIVOT ( aggregate_function(column_name) FOR pivot_column_name IN (value1, value2, ...) ) FROM table_name;</code>
登入後複製

其中:

  • aggregate_function : 要應用於轉換列數據的聚合函數,如SUM、COUNT 或MAX。
  • pivot_column_name : 用作行標頭的列名稱。
  • value1 , value2 , ...: 指定要轉行的列值。

示例

假設我們有一個名為orders的表,其中包含以下列:

  • order_id
  • product_name
  • quantity
  • sale_date

要將product_name列轉行,使用PIVOT函數:

 <code class="sql">SELECT order_id, sale_date, SUM(quantity) AS quantity FROM orders PIVOT ( SUM(quantity) FOR product_name IN ('Product A', 'Product B', 'Product C') );</code>
登入後複製

這將產生以下輸出:

order_id sale_date quantity_Product A quantity_Product B quantity_Product C
1 2023-01-01 10 15 20
2 2023-01-02 5 10 15

以上是sql中如何實現列轉行的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1655
14
CakePHP 教程
1414
52
Laravel 教程
1307
25
PHP教程
1254
29
C# 教程
1228
24
oracle中sum和count的差別 oracle中sum和count的差別 May 02, 2024 pm 11:09 PM

Oracle 中的 SUM 用於計算非空數值的總和,而 COUNT 則計入所有資料類型的非空值數量,包括重複值。

sql中的sum是如何運算的 sql中的sum是如何運算的 May 09, 2024 am 09:27 AM

SQL SUM 函數透過將一組數字相加來計算它們的總和。其運算過程包括:1. 識別輸入值;2. 循環輸入值並將其轉換為數字;3. 對每個數字進行加法,累積一個總和;4. 傳回總和結果。

sql中聚合函數有哪些 sql中聚合函數有哪些 May 02, 2024 am 01:12 AM

SQL 中的聚合函數用於計算並傳回一組行的單一值。常見的聚合函數包括:數值聚合函數:COUNT()、SUM()、AVG()、MIN()、MAX()行集合聚合函數:GROUP_CONCAT()、FIRST()、LAST()統計聚合函數:STDDEV ()、VARIANCE()選用聚合函數:COUNT(DISTINCT)、TOP(N)

oracle中count函數怎麼用 oracle中count函數怎麼用 Apr 30, 2024 am 07:39 AM

Oracle 中 COUNT 函數用於統計指定列或表達式中的非空值,語法為 COUNT(DISTINCT <column_name>) 或 COUNT(*),分別計算唯一值和所有非空值的個數。

sql中sum函數怎麼用 sql中sum函數怎麼用 May 02, 2024 am 12:01 AM

SQL中的SUM()函數用來計算數字列的總和。它可以根據指定列、篩選條件、別名、分組和聚合多個列來計算總和,但僅處理數字值,忽略NULL值。

mysql中avg的用法 mysql中avg的用法 May 01, 2024 pm 09:16 PM

MySQL 的 AVG() 函數用於計算數字值的平均值。它支援多種用法,包括:計算所有銷售產品的平均數量:SELECT AVG(quantity_sold) FROM sales;計算價格的平均值:AVG(price);計算銷售額的平均值:AVG(quantity_sold * price)。 AVG() 函數忽略 NULL 值,使用 IFNULL() 可計算非空值的平均值。

sql中的sc是什麼意思 sql中的sc是什麼意思 May 02, 2024 am 03:33 AM

SC 在 SQL 中表示 SELECT COUNT,用於計算記錄數(無論是否符合條件)的聚合函數。 SC 語法:SELECT COUNT(*) AS record_count FROM table_name WHERE condition,其中 COUNT(*) 計算所有記錄的數量,table_name 是表名,condition 是可選條件(用來計算滿足條件的記錄數)。

sql中group by和oder by怎麼一起使用 sql中group by和oder by怎麼一起使用 May 02, 2024 am 03:09 AM

使用 GROUP BY 和 ORDER BY 可以對分組資料進行排序:1. GROUP BY 分組資料;2. ORDER BY 排序每組資料。

See all articles