我正在使用 SQL Server 2008。
假设我有两个假设的表格,如下所示:
CREATE TABLE [Department](
[Id] int IDENTITY(1,1),
[ManagerId] int NULL, -- << Foreign key to the Person table
-- other fields
)
CREATE TABLE [Person](
[Id] int IDENTITY(1,1),
[DepartmentId] int NOT NULL, -- << Foreign key to the Department table
-- other fields
)
现在,我想从[Person]
表中返回一个行列表(即给定部门的员工列表)。这些行中只有一个(或零个)与表中的[ManagerId]
字段匹配[Department]
。而且我想用一个布尔字段动态标记匹配的行......结果行集将类似于以下架构:
[Id] INT,
[IsManager] BIT NOT NULL DEFAULT 0,
-- other fields
匹配时该[IsManager]
字段将为 TRUE 。[Department].[ManagerId]
[Person].[Id]
这对于两个(或更多)查询来说是相当微不足道的。但是我怎样才能使用单个 SQL 语句来实现呢?