Хорошо, у меня есть запрос, похожий на
SELECT
CASE WHEN EXISTS(SELECT NULL
FROM B
WHERE B.LENGTH = A.LENGTH + 10)
THEN 'Yes'
ELSE 'No'
END AS Result1,
CASE WHEN EXISTS(SELECT NULL
FROM B
WHERE B.LENGTH = A.LENGTH - 10)
THEN 'Yes'
ELSE 'No'
END AS Result2,
CASE WHEN EXISTS(SELECT NULL
FROM B
WHERE B.LENGTH = A.LENGTH)
THEN 'Yes'
ELSE 'No'
END AS Result3
FROM A
Как вы можете видеть, 3 запроса EXIST почти одинаковы, с небольшим различием, которое (я надеюсь) может быть передано в качестве аргумента.
Я пытался создать TVF, но он не работает, когда я возвращаю SELECT NULL...
, но работает, если я использую SELECT *
. Чего я боюсь, так это того, что мне не нужны значения, которые я хочу проверить, если они существуют, и все.
Мой вопрос: как лучше реорганизовать этот код, чтобы он не был повторяющимся?