【发布时间】:2022-10-24 12:17:12
【问题描述】:
我可以使以下查询更短和/或优化吗?
WITH myvars (t_state, t_hv_involved, num_vehicle_hv )
AS (VALUES ('TAS', null, null))
SELECT * FROM safety.crash_summary_view c, myvars
WHERE jurisdiction = t_state
AND ((t_hv_involved::boolean = TRUE AND c.num_vehicle_hv > 0)
OR t_hv_involved is null
OR t_hv_involved::boolean = FALSE)
如果 t_hv_involved 是 true 那么它应该过滤 num_vehicle_hv > 0。
如果t_hv_involved是false或null,则不要过滤。
【问题讨论】:
-
您可以通过省略
= TRUE并将t_hv_involved::boolean = FALSE更改为NOT t_hv_involved::boolean来缩短它,但我认为这不是您想要的。
标签: sql postgresql types query-optimization boolean-logic