У меня есть код, в котором я выбираю строки, которые имеют любое из следующих жестко закодированных значений SETID
. Это часть дополнительного кода, внедряемого в представление SQL.
SELECT *
FROM TEST_TABLE1 B
WHERE B.SETID IN ('11000', '18000', '41000', '41001')
В дополнение к вышеуказанным жестко закодированным значениям я хотел бы добавить еще один гораздо более длинный список SETID
в диапазоне '90000' and '90999'
, который содержится в таблице PS_LOC_GL
. Я бы предпочел использовать оператор BETWEEN
, чтобы мне не приходилось перечислять каждое значение в этом диапазоне. Мне не удалось найти метод для выбора обоих жестко закодированных значений и совместного использования оператора BETWEEN
.
Это то, что я придумал до сих пор, однако я не верю, что могу использовать переменные внутри представлений SQL, поэтому, хотя это работает как собственный код SQL, оно не будет работать внутри моего представления:
DECLARE @SET_ID_LIST table (SETID varchar(5))
INSERT @SET_ID_LIST(SETID) VALUES ('11000'), ('18000'), ('41000'), ('41001');
SELECT *
FROM TEST_TABLE1 B
WHERE B.SETID IN (
SELECT SETID FROM @SET_ID_LIST
UNION
SELECT SETID FROM PS_LOC_GL
)
Есть ли у меня другие варианты, в которых я могу использовать как жестко закодированный список значений, так и более динамический список, основанный на таблице PS_LOC_GL
, которая имеет только значения SETID
в '90000'
- '90999'
диапазон.