gpt4 book ai didi

sql-server-2008 - T-SQL - 即时计算 bool 字段

转载 作者:行者123 更新时间:2023-12-04 02:16:48 24 4
gpt4 key购买 nike

我正在使用 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] 表中的行列表(即给定部门的员工列表)。这些行中只有一个(或零个)与 [Department] 表中的 [ManagerId] 字段匹配。我想在运行中用 bool 字段标记匹配的行...生成的行集将类似于以下架构:

[Id]        INT,
[IsManager] BIT NOT NULL DEFAULT 0,
-- other fields

[Department].[ManagerId] 匹配 [Person].[Id] 时,[IsManager] 字段将为 TRUE。

这对于两个(或更多)查询来说是相当微不足道的。但是我怎样才能使用单个 SQL 语句实现这一点呢?

最佳答案

在您的 SELECT 子句中添加一个表达式,将实际人员 Id 与人员部门的 ManagerId 进行比较

SELECT
Person.Id,
Department.Id,
CAST(CASE WHEN Person.Id=Department.ManagerId THEN 1 ELSE 0 END AS BIT) AS IsManager
FROM Person
INNER JOIN Department ON Person.DepartmentId=Department.Id
WHERE Person.DepartmentId=<CONDITION>

关于sql-server-2008 - T-SQL - 即时计算 bool 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11202126/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com