我希望你能帮我解决这个我已经工作了几天的简单查询。我是SQL的新手,已经阅读了类似问题的答案,但没有找到我想要的东西。
我的目标是从两个不同的表中查询信息,并以可读的方式显示它。我成功创建了以下查询,该查询显示了我需要的所有信息:
SELECT
PA.EntityName,
PA.EntityType,
PO.Name,
PO.Feature
FROM PolicyAssociations PA
JOIN Policies PO ON PO.Id = PA.PolicyId
WHERE
PA.EntityType='1'
or
PA.EntityType='2'
GROUP by PO.Name, PA.EntityName
现在我需要将EntityType列的输出(显示为“对象类型”)从数值更改为文本,例如显示“计算机”一词而不是“1”和“用户”而不是“2”。
以下查询独立工作,但我未能将这些字符串合并到主要的JOIN查询中:
SELECT EntityType,
CASE
WHEN EntityType = '1' THEN 'Computer'
WHEN EntityType = '2' THEN 'User'
END
FROM policyassociations
答案 0 :(得分:0)
这应该做:
SELECT
PA.EntityName,
PA.EntityType,
PO.Name,
PO.Feature,
CASE WHEN PA.EntityType = '1' THEN 'Computer' ELSE 'User' END [Object Type]
FROM PolicyAssociations PA
INNER JOIN Policies PO
ON PO.Id = PA.PolicyId
WHERE
PA.EntityType IN ('1','2') -- Why are these values not INTs?
ORDER by PO.Name, PA.EntityName;
答案 1 :(得分:0)
你的意思是这个吗?似乎是解决方案的基础。
SELECT
PA.EntityName,
CASE WHEN EntityType = '1' THEN 'Computer'
WHEN EntityType = '2' THEN 'User'END as EntityTypeStr,
PA.EntityType,
PO.Name,
PO.Feature
FROM PolicyAssociations PA
JOIN Policies PO ON PO.Id = PA.PolicyId
WHERE
PA.EntityType='1'
or
PA.EntityType='2'