簡體   English   中英

多個別名,一列

[英]Multiple Alias, one Column

我試圖為同一列提供多個別名,基本上,我希望這兩個查詢是一個:

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

這足夠了嗎?

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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM