Я выполняю запрос Snowflake, который предназначен для возврата записей, которые, помимо прочего, имеют дату, более раннюю, чем текущая дата.
select *
from table_a
where id < 100 and
date < ???
Проблема в том, что данные, для которых выполняется этот запрос, содержат ошибки в столбце даты. Например, одно значение может быть одной цифрой (например, 2
). Я не хочу, чтобы запрос разбивался по этим строкам. Вот почему я хочу написать case
в предложении where
, чтобы рассматривать только записи, дата которых равна YYYY-MM-DD
. Я пробовал следующее, но он возвращает синтаксические ошибки:
and date = case WHEN date like '____-__-__' then date < current_date() else NULL
Также
and date < case WHEN date like '____-__-__' then current_date() else NULL
(В случае, если он не виден из-за форматирования, это 4 символа подчеркивания - означает любой символ, за которым следует один дефис, за которым следуют 2 символа подчеркивания, затем дефис, а затем еще два символа подчеркивания.)
Вы можете предположить, что у current_date()
нет проблем. При необходимости его можно даже заменить на какое-то жестко запрограммированное значение.
Как мне написать этот запрос?