我有一个名为Identifier的表,它有一个identifierType,identifierValue和foreignkey到病人表。
一名患者可以有多个标识符,因此对于给定的患者,标识符表中会有多行。
我想从符合给定标准的表中提取patientforeign键的值,
一个例子是我想找到
patientId where identifierType = 'PatientFirst"
and identifierValue = 'sally'
and identifierType= 'patientFirst'
and identifier value = 'sally'.
什么是sql语句将此结果拉入sqlserver
答案 0 :(得分:0)
这个网站看起来有点简单,不是吗? :)
SELECT fk_patientID
FROM identifier
WHERE IdentifierType = 'PatientFirst'
AND IdentifierValue = 'sally'
答案 1 :(得分:0)
如果您希望将每个患者ID中的某些属性展平为一行,则对数据透视表可能也很有用:
;with PatientFullName( fk_patientId, PatientLast, PatientFirst )
as
(
select
fk_patientId
, pt.PatientLast
, pt.PatientFirst
from
Identifier
pivot
(
MAX(identifierValue)
for identifierType in ( [PatientLast], [PatientFirst] )
) as pt
)
select
*
from
PatientFullName pfn
where
pfn.PatientLast = 'Doe'
and pfn.PatientFirst = 'Sally'