Tại sao truy vấn này không hoạt động?Truy vấn bên ngoài đang chạy trước truy vấn bên trong
select *
from
(
select membership_number
from members
where membership_number not like '%[^0-9]%'
) mem
where cast(membership_number as int) > 2
Xem SQL Fiddle Demo.
Các subquery nên lọc ra dữ liệu đó là không phải là số, và truy vấn bên ngoài được đúc này để một số nguyên để tôi có thể tìm kiếm bất cứ điều gì> 2.
Nó có vẻ như nó đang chạy mệnh đề where của truy vấn bên ngoài trước tiên. Làm thế nào để tôi có được điều này?
Bạn có tự chạy truy vấn bên trong để đảm bảo truy vấn đó đang trả về những gì bạn mong đợi không? – OldProgrammer
Thats cool. tôi chưa bao giờ nghe nói về SQL Fiddle trước đây. – anthonybell
@ OldProgrammer- Vâng tôi có, và truy vấn bên trong hoạt động tốt. Tôi đã thử một CTE và nó làm điều tương tự. Cách duy nhất tôi có thể làm cho nó hoạt động là nếu tôi làm một 'số thành viên chọn thành test_table' và sau đó thay thế truy vấn phụ bằng bảng đó. – Lock