簡體   English   中英

這可以在一個查詢中:SELECT x as y1 WHERE y = 1而SELECT x as y2 WHERE y = 2?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM