小编典典

basic sql:当每次出现都取决于不同的where子句时,在一个查询中多次选择同一列

sql

什么是执行此查询的最佳方法。我有下表

mytable与列

x y 
1 a
2 b
3 c

我想(在伪sql中)

select x as x1 ,x as x2, x as x3 from mytable where ????

什么时候

x1 is x where y=a

x2 is x where y=b

x3 is x where y=c

所以我想要

1, 2, 3

我当前正在使用cte和,并且数据集非常大,我正在尝试减少查询时间,是否总是需要进行3次表扫描?


阅读 132

收藏
2021-03-23

共1个答案

小编典典

您应该使用3个查询。当self加入时,使用正确的索引会快很多。此外,它将更具可读性。

如果您想进行一次查询调用,则可能是这样:)

SELECT
(SELECT x FROM table WHERE y=1) AS x1,
(SELECT x FROM table WHERE y=2) AS x2,
(SELECT x FROM table WHERE y=3) AS x3
2021-03-23