我正在使用 SQL Server 2005 并尝试以我似乎无法正常工作的方式构建查询。
我有两张桌子。一个表包含 ItemTypes 列表,另一个表包含 ItemTypes 和用户之间的映射列表。
我想要一个返回这些结果的查询:
ID | ItemType | Enabled?
---------------------------------
1 | Type1 | false
2 | Type2 | true
启用列将基于另一个表中是否有条目。我想使用某种 case 语句,如果存在 LEFT JOIN 项,则设置为 TRUE,否则设置为 FALSE。
SELECT systype.ID, systype.TypeDescription,
'Enable' = CASE hid.ID WHEN NULL THEN 'true' ELSE 'false' END
FROM [HardwareTestcaseManagement].[dbo].[A7_SystemItemTypes] systype
LEFT JOIN [dbo].[A7_HiddenNewsFeedTypes] hid
ON systype.ID = hid.SystemItemTypesID
AND hid.UserName = @UserName
但是,到目前为止,我提出的这个查询 ^ 并没有按我的预期工作。
有什么建议可以让我调整这个查询以按照我想要的方式工作吗?
编辑:当我进行左连接并仅选择“hid.ID”列时,它会以 NULL 或实际 ID 的形式返回。我希望我可以根据它是否为空来修改该值。