У меня запрос за последние 10 дней. У меня также объявлена переменная. Если переменная представляет собой пустую строку, я хочу запросить последние 10 дней (отлично работает). Если строка переменной не пуста, я хочу выполнить поиск во всех строках, а не только за последние 10 дней.
Я не могу поставить условие if вокруг предложения WHERE
. Я думал иметь GETDATE()
в качестве переменной, и если строка не пуста, это будет самая старая дата в SQL, но не знаю, как получить эту дату.
DECLARE @searchString VARCHAR(50) = '';
SELECT
[filterFileName],
event_filter.tradingDate,
log_folder.logFolderID,
isVMonDagLocked,
de_file.importStatus as de_importStatus,
de_file.isValid as de_isValid,
FROM [TradingCenter].[Trade].[TradingEventFilterFile] as event_filter
LEFT JOIN [TradingCenter].[Trade].[TradingEventFilterFile2LogFolder] as log_folder /*Get relation rows for filterfile*/
ON event_filter.filterFileID = log_folder.filterFileID
LEFT JOIN [TradingCenter].[Trade].[TradingEventLogFolder] as trade_event_log_folder /**/
ON log_folder.logFolderID = trade_event_log_folder.logFolderID
LEFT JOIN [TradeLog].[Trade].[DEFile] as de_file /*join DE file*/
ON trade_event_log_folder.logFolderID = de_file.logFolderID
WHERE event_filter.createdOn >= DATEADD(day, -10, GETDATE())
AND event_filter.filterFileName LIKE '%' + @searchString + '%';