Решить нулевую дату с помощью регистра case или if - PullRequest
0 голосов
/ 24 января 2020

Я хочу обрабатывать записи для дат на ежедневной основе. Однако у меня есть решение, которое будет работать постепенно, но мне нужно решение, которое загрузит первую дату, если таблица пуста. Вот мой запрос

  SELECT DateToProcess = MIN(MonthlyDate)
  FROM ods.CustomerBill b
  WHERE b.MonthlyDate > @DateToProcess

Если @DateToProcess равно нулю, я хочу задать ему 1999-01-01 таким образом, чтобы он извлекал минимальную дату из моей таблицы и начинал вставлять записи. Как я могу реализовать эту дополнительную логику c, чтобы заставить это работать?

Ответы [ 2 ]

1 голос
/ 24 января 2020

Я предпочитаю явные логики c магическим c значениям, поэтому я бы порекомендовал:

SELECT DateToProcess = MIN(MonthlyDate)
FROM ods.CustomerBill b
WHERE b.MonthlyDate > @DateToProcess OR @DateToProcess IS NULL
0 голосов
/ 24 января 2020

Просто заверните @DateToProcess с ISNULL:

ISNULL(@DateToProcess,'19000101')
...