2012-10-23 78 views
-3

这是我的'联系人'表格。从同一张表中选择男性和女性的名字联系人

| Names  | Gender | 

| Mike  | Male  | 
| Steve  | Male  | 
| Kelly  | Female  | 
| Jane  | Female  | 
| Natasha | Female  | 
| Mathew  | Male  | 
| Jack  | Male  | 

我想造成这样的:

​​

请给我的解决方案,以实现这一结果在SQL Sever的... 任何建议都感激!

+1

“Mike”与“Kelly”配对的方式或原因?为什么“杰克”不与任何结果配对? –

回答

5
with Male as 
(
    select Names, 
     row_number() over(order by Names) as rn 
    from YourTable 
    where Gender = 'Male' 
), 
Female as 
(
    select Names, 
     row_number() over(order by Names) as rn 
    from YourTable 
    where Gender = 'Female' 
) 
select Male.Names as Male, 
     Female.Names as Female 
from Male 
    full outer join Female 
    on Male.rn = Female.rn 

SQL Fiddle

不是你想要的确切结果,但因为它没有得到另一列由命令一样好。

Male Female 
------- ------- 
Jack Jane 
Mathew Kelly 
Mike Natasha 
Steve NULL 
相关问题