首页 > 解决方案 > 为什么不过滤?SQL查询“在哪里”

问题描述

在这段代码中,我想使用“where”关键字过滤只有 3 个 id 的“state_id”,但它不起作用,它显示了所有内容。

这是代码:

SELECT p.name as "patient", at.[RAPID3 Name], at.[DLQI Name], at.[HAQ-DI Name], p.ID, phy.Name, at.State_ID
FROM [ABV HUM Reporting].dbo.[Assessment Tool] as at
left join [ABV HUM Reporting].dbo.Patient as p on p.[ID] = at.[Owner (Patient)_Patient_ID]
left join [abv hum reporting].dbo.[Physician] as phy on phy.ID = p.Physician_ID
--left join [ABV HUM Reporting].dbo.[Physician] on p.Physician_ID = phy.Name
where at.State_ID=168 or at.State_ID = 165 or at.State_ID = 162
and at.[RAPID3 Name] is not null or at.[DLQI Name] is not null or [HAQ-DI Name] is not null Order by at.date DESC 

结果截图:

在此处输入图像描述

标签: sqlsql-serverselectwhere-clause

解决方案


 where (at.State_ID=168 or at.State_ID = 165 or at.State_ID = 162)
and (at.[RAPID3 Name] is not null or at.[DLQI Name] is not null or [HAQ-DI Name] is not null )

推荐阅读