需要一些SQL的一些小幫助。我正在使用一個VARCHAR
值來確定在WHERE子句中使用哪種邏輯的情況,但我在寫這個case語句時遇到了一些問題。T-SQL 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的附近關鍵字的語法不正確 '是'。
它可能是一個小錯誤,但它讓我很沮喪。也許有更好的方式來寫這個?謝謝!
CASE語句只能提供**值** - 不是整個代碼塊。你需要重新安排你的邏輯 –