【问题标题】:Multiple Alias, one Column多个别名,一列
【发布时间】:2017-01-29 00:56:15
【问题描述】:

我试图为同一列提供多个别名,基本上,我希望这两个查询是一个:

SELECT name AS singlePeople FROM People
JOIN ID FROM Numbers
ON People.ID=Numbers.ID
WHERE People.isMarried=f;


SELECT name AS marriedPeople FROM People
JOIN ID FROM Numbers
ON People.ID=Numbers.ID
WHERE People.isMarried=t;

我希望我的结果看起来像:

singlePeople    marriedPeople
-------------   --------------
Bob Kelly        John SMith
John Adams

【问题讨论】:

  • 这些表格是什么样的?我不清楚为什么需要join

标签: mysql sql subquery alias psql


【解决方案1】:

这就够了吗?

SELECT (CASE WHEN p.isMarried THEN 'Married' ELSE 'Single' END) as which,
       name
FROM People p JOIN 
     Numbers n
     ON p.ID = n.ID;

如果没有,您可以使用变量来执行此操作:

select max(case when not ismarried then name end) as single,
       max(case when ismarried then name end) as married
from (select name, p.ismarried,
             (@rn := if(@i = ismarried, @rn + 1,
                        if(@i := ismarried, 1, 1)
                       )
             ) as seqnum
      from people p join
           numbers n
           on p.id = n.id cross join
           (select @i := NULL, @rn := 0) params
      order by ismarried
     ) pn
group by rn;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-11
    • 1970-01-01
    • 2012-02-18
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多