gpt4 book ai didi

mysql - 这可以在一个查询中吗 : SELECT x as y1 WHERE y = 1 and SELECT x as y2 WHERE y = 2?

转载 作者:可可西里 更新时间:2023-11-01 08:06:20 25 4
gpt4 key购买 nike

给定一个表格

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

输出

╔════╦═════╦══════╗
║ ID ║ Y1 ║ Y2 ║
╠════╬═════╬══════╣
║ 5 ║ 200 ║ 3000 ║
║ 6 ║ 135 ║ 2222 ║
╚════╩═════╩══════╝

关于mysql - 这可以在一个查询中吗 : SELECT x as y1 WHERE y = 1 and SELECT x as y2 WHERE y = 2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16030136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com