SQL Server 2008 を使用しています。
以下のような 2 つの架空のテーブルがあるとします。
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]
ここで、テーブルから行のリスト (つまり、特定の部門のスタッフのリスト) を返したいと考えています。これらの行の 1 つ (またはゼロ) のみ[ManagerId]
が、テーブル内のフィールドと一致し[Department]
ます。そして、その場でブールフィールドで一致した行にフラグを立てたい...結果の行セットは次のスキーマのようになります:
[Id] INT,
[IsManager] BIT NOT NULL DEFAULT 0,
-- other fields
一致する場合、[IsManager]
フィールドは TRUE になります。[Department].[ManagerId]
[Person].[Id]
これは、2 つ (またはそれ以上) のクエリで行うのはかなり簡単です。しかし、単一の SQL ステートメントを使用してこれを達成するにはどうすればよいでしょうか?