我不是一个精明的SQL程序员,所以我陷入了一个困境。从一个表中,我可以选择如下。
select Sign as Siggy, Value as Greeky from Table
where ID = 1这为我提供了以下输出。
西吉·格里基 阿什阿尔法 b-ishβ C-IS-γ
问题是,由于没有在这里讨论的理由和不深情,我需要它是这样的。
A-ish B-ish C-ish αβγ
需要注意的是,我确实非常肯定地知道有固定数量的元素(可能为null值)。我可以有把握地假设,从行映射到的列数为3列或更少。
我试图像这样通过连接来解决这个问题。
select T1.ID, T1.Value, T2.Value, T3.Value
from Table as T1
join Table as T2 on T2.ID = T1.ID and T2.Siggy = 'b-ish'
join Table as T3 on T3.ID = T1.ID and T2.Siggy = 'c-ish'这产生了第一行,这是我需要的,但是它是重复的(并且有些变化),因为,正如我所怀疑的那样,ON加成JOIN语句并不适用于FROM。
我只能得到第一排,但最好能让它更好。怎么做?!
请不要这样做,因为我有一个要转换的行的固定限制,和,我需要尊重列的输出不会超过这个数字。
发布于 2014-10-15 10:54:02
在from子句中的表中缺少一个条件,使之具有Siggy = 'a-ish'。如果将所有术语转换为子查询,则查询将变得更加清晰:
select a.ID, a.Value, b.Value, c.Value
from (SELECT ID, Value
FROM Table
WHERE Sign = 'a-ish') a
join (SELECT ID, Value
FROM Table
WHERE Sign = 'b-ish') b ON a.ID = b.ID
join (SELECT ID, Value
FROM Table
WHERE Sign = 'c-ish') c ON a.ID = c.IDhttps://stackoverflow.com/questions/26379968
复制相似问题