У меня есть таблица идентификатора пациента и лекарства, которые они используют.Если пациент отказывается от препарата А, он будет использовать В, в то время как дальнейшая лекарственная устойчивость ведет к препарату С и так далее.
Я хочу найти пациентов, которые употребляют определенное лекарство (например, «B») и остановились там, не пробуя новое лекарство в списке.Мой код тупой и неэффективный, если список лекарств короткий.
PatientID MedicationName
13 A
13 B
13 C
32 A
32 A+
32 B
32 C
38 A
38 C
38 D
42 B
42 F
42 G
53 E
53 F
select *
from PatientMaster
where MedicationName = 'B'
and PatientID not in (
select PatientID
from PatientMaster
where MedicationName in ( 'C', 'D', 'E', 'F', 'G' ))
Если мой список MedicationName содержит> 1000 имен, как у меня есть своего рода «отсечение» для категориального значения ивыбрать пациентов, которые остановились на определенных препаратах?