Почему это не работает?Внешний запрос выполняется перед внутренним запросом
select *
from
(
select membership_number
from members
where membership_number not like '%[^0-9]%'
) mem
where cast(membership_number as int) > 2
См. SQL Fiddle Demo.
подзапрос должен отфильтровать данные, которые не числовой, а внешний запрос литье это целое число, так что я могу найти что-нибудь> 2.
Похоже, он работает в ИНЕКЕ сначала внешний запрос. Как мне обойти это?
Вы сами запустили внутренний запрос, чтобы убедиться, что он возвращает то, что вы ожидаете? – OldProgrammer
Thats cool. Я никогда не слышал о SQL Fiddle раньше. – anthonybell
@ OldProgrammer- Да, у меня есть, и внутренний запрос работает нормально. Я пробовал CTE, и он делает то же самое. Единственный способ, с помощью которого я могу заставить его работать, - это «выбрать членский номер участника в test_table», а затем заменить подзапрос этой таблицей. – Lock