[英]Can this be in one query: SELECT x as y1 WHERE y = 1 and SELECT x as y2 WHERE y = 2?
給出一個像這樣的表
id x y
-- --- ---
5 200 1
5 3000 2
5 224 3
6 135 1
6 2222 2
6 16 3
我可以得到y = 1的所有x值
SELECT x as y1
WHERE y = 1
我可以得到y = 2的所有x值
SELECT x as y2
WHERE y = 2
但我想在一個查詢中選擇這些,所以我得到一個結果
id y1 y2
-- --- ---
5 200 3000
6 135 2222
這可以在一個查詢中完成嗎?
我已經嘗試了幾乎所有可以想到的變化但是所有的錯誤。
MySQL沒有像SQL Server
那樣的PIVOT
功能。 但是你仍然可以使用MAX()
和CASE()
來連續測試它的值來模擬它。
SELECT ID,
MAX(CASE WHEN y = 1 THEN x END) y1,
MAX(CASE WHEN y = 2 THEN x END) y2
FROM TableName
GROUP BY ID
OUTPUT
╔════╦═════╦══════╗
║ ID ║ Y1 ║ Y2 ║
╠════╬═════╬══════╣
║ 5 ║ 200 ║ 3000 ║
║ 6 ║ 135 ║ 2222 ║
╚════╩═════╩══════╝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.