Форматирование SQL с помощью WhiteSpace и разрывов строк значительно облегчает чтение. Если вы сделаете это, вы получите что-то вроде этого:
SELECT FIN AS LIN,
CUSIP,
Borrower_Name,
Alias,
DS_Maturity,
Spread,
Facility,
Facility_Size,
Log_date
FROM [Main].[FacilityInformation]
WHERE CUSIP = ('00485GAC2', 'N1603LAD9')
OR (YEAR(DS_Maturity) = ('2019','2024')
AND ((Borrower_Name LIKE 'Acosta Inc , Bright Bidco BV%'
OR Alias LIKE 'Acosta 9/14 (18.61) Non-Extended Cov-Lite, Lumileds 2/18 Cov-Lite%')));
Запустив это, вы получите ошибку:
Сообщение 102, Уровень 15, Состояние 1, Строка 12 Неверный синтаксис рядом с','.
И строка 12:
OR (YEAR(DS_Maturity) = ('2019','2024')
Вы должны четко видеть, что проблема сейчас (это должно быть IN
, а не =
).
Лично я рекомендую не использовать YEAR
в WHERE
, поскольку это делает запрос не SARGable. Вместо этого используйте правильную дату и логическую логику:
OR ((DS_Maturity >= '20190101' AND DS_Maturity < '20200101')
OR ((DS_Maturity >= '20240101' AND DS_Maturity < '20250101')...)