【发布时间】:2021-11-25 13:46:44
【问题描述】:
在这段代码中,我想使用“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
结果截图:
【问题讨论】:
-
如果你混合使用
and和or,你一般应该使用括号 -
您应该更加小心 OR - 最后两个 OR 实际上会使您的 ID 标准毫无用处。
标签: sql sql-server select where-clause