需要一些 SQL 的小帮助。我正在使用一个VARCHAR
值来确定在 WHERE 子句中使用哪个逻辑,但我在编写这个 case 语句时遇到了一些问题。
where
(CASE WHEN @p_flag = 'ATA'
THEN (@p_start_ata IS NULL AND @p_end_ata IS NULL) OR (vso.poa_ata between @p_start_ata and @p_end_ata)
ELSE (@p_start_atd IS NULL AND @p_end_atd IS NULL) OR (vso.pol_atd between @p_start_atd and @p_end_atd)
)
第 93 行 关键字“IS”附近的语法不正确。
它可能是一个小错误,但让我感到沮丧。也许有更好的方法来写这个?谢谢!