【发布时间】:2013-05-16 15:04:12
【问题描述】:
鉴于以下情况:
Create Table Person
(
ID int ,
Lastname varchar(32),
Firstname varchar(32)
);
Create Table Families
(
ID int,
PersonId_fk int,
IsHeadOfHousehold bit
);
Insert into Person Values(1, 'Smith', 'John');
Insert into Person Values(4, 'Johnson', 'Sue');
Insert into Person Values(2, 'Smith', 'Jane');
Insert into Person Values(3, 'Towmater', 'Billy');
Insert into Families Values(1, 1, 1);
Insert into Families Values(1, 2, 0);
Insert into Families Values(1, 3, 0);
Insert into Families Values(1, 4, 0);
我无法按以下顺序显示结果。我正在尝试做的是让一家之主先出现,然后是同姓的任何人,最后是其他所有人都按姓氏排序
Smith John 1
Smith Jane 0
Johnson Sue 0
Towmater Billy 0
我试过了
SELECT LastName, FirstName, IsHeadOfHousehold
FROM families f
join person p
on f.PersonID_fk = p.ID
where f.Id = 1
Order by IsHeadOfHousehold DESC, LastName, FirstName
这让我很接近,但没有让我得到我想要的。
【问题讨论】:
-
为什么是
where f.id = 1? -
eric :因为那是我想要的人名单的家庭。实际上,此表中有许多不同的族
-
你得到什么输出?什么顺序?
标签: sql sql-server sql-order-by