首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无意中返回的多行数

无意中返回的多行数
EN

Stack Overflow用户
提问于 2014-10-15 10:13:40
回答 1查看 84关注 0票数 1

我不是一个精明的SQL程序员,所以我陷入了一个困境。从一个表中,我可以选择如下。

代码语言:javascript
复制
select Sign as Siggy, Value as Greeky from Table
where ID = 1

这为我提供了以下输出。

西吉·格里基 阿什阿尔法 b-ishβ C-IS-γ

问题是,由于没有在这里讨论的理由和不深情,我需要它是这样的。

A-ish B-ish C-ish αβγ

需要注意的是,我确实非常肯定地知道有固定数量的元素(可能为null值)。我可以有把握地假设,从行映射到的列数为3列或更少。

我试图像这样通过连接来解决这个问题。

代码语言:javascript
复制
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。

我只能得到第一排,但最好能让它更好。怎么做?!

请不要这样做,因为我有一个要转换的行的固定限制,,我需要尊重列的输出不会超过这个数字。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-15 10:54:02

from子句中的表中缺少一个条件,使之具有Siggy = 'a-ish'。如果将所有术语转换为子查询,则查询将变得更加清晰:

代码语言:javascript
复制
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.ID
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26379968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档