您真的需要将 Blood 和 Pulse 保留为单独的字段吗?您也可以将血液和脉搏视为不同的属性。听起来像这样的东西会起作用,并且无需使用 PIVOT 命令即可轻松查询。
PersonAttribute
PersonId int (I'm only presuming here)
AttributeId int
Attribute
AttributeId int
AttributeTypeId int
AttibuteValue varchar(100)
AttributeType
AttributeTypeId int
AttributeType varchar(100)
然后,您可以将 Blood、Pulse、Weight 等存储在 AttributeType 表中,并将 PersonAttribute 表用作主表的 1-N 方法。只是一个想法。
SELECT Distinct PA.PersonId
FROM PersonAttribute PA
INNER JOIN Attribute A ON PA.AttributeId = A.AttributeId
INNER JOIN AttributeType AT ON A.AttributeTypeId = AT.AttributeTypeId
WHERE AT.AttributeType = 'Blood'
当然,如果需要,可以应用相同的模型,将 Blood and Pulse 留在主表中。
祝你好运。