Могу ли я выполнять ГДЕ операции с вычисляемым полем даты?
У меня есть поле поиска, которое плохо написано на SQL, и, к сожалению, я не могу его изменить. Но в основном он хранит даты в виде символов, таких как «июль-2010» или «июнь-2009» (вместе с другими данными, не относящимися к дате). Сначала я хочу извлечь даты (что я и сделал с помощью оператора LIKE), а затем извлечь данные на основе диапазона дат.
SELECT
BusinessUnit,
Lookup,
ReleaseDate
FROM
(
SELECT TOP 10
LookupColumn As Lookup,
BU as BusinessUnit,
CONVERT(DATETIME, REPLACE(LookupColumn,'-',' ')) as ReleaseDate
FROM
[dbo].[LookupTable]
WHERE
LookupColumn LIKE N'%-2010'
) MyTable
ORDER BY ReleaseDate
WHERE ReleaseDate = '2010-02-01'
У меня проблемы с оператором WHERE. Я бы предположил, что создание подзапроса для инкапсуляции вычисляемого поля позволило бы мне выполнять с ним такие операции, как WHERE, но, возможно, я ошибаюсь. Итог можно ли делать операции на вычисляемых полях?
ОБНОВЛЕНИЕ: действительно, я перепутал заказ, и, кроме того, оператор LIKE также возвращал не датированные значения, такие как TBD-2010, которые меня напутали.