0

我有一个名为 Identifier 的表,它具有患者表的 identifierType、identifierValue 和外键。

一名患者可以有多个标识符,因此对于给定的患者,标识符表中将有多行。

我想从此表中提取满足给定标准的患者外键的值,

一个例子是我想找到

patientId where identifierType = 'PatientFirst" 
and identifierValue = 'sally' 
and identifierType= 'patientFirst' 
and identifier value = 'sally'. 

在 sqlserver 中提取此结果的 sql 语句将是什么

参考:(http://sqlfiddle.com/#!3/33fc6/2/0

4

2 回答 2

0

这个网站似乎有点容易,不是吗?:)

SELECT fk_patientID 
FROM identifier
WHERE IdentifierType = 'PatientFirst'
AND IdentifierValue = 'sally'
于 2013-10-12T23:38:28.973 回答
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'
于 2013-10-13T02:14:15.700 回答