Подстановочные знаки SQL "%" и "_" хорошо документированы и широко известны. Однако, как объясняет w3schools , существуют также символы подстановки в стиле «charlist» для сопоставления одного символа в пределах или за пределами заданного диапазона, например, чтобы найти всех людей по имени Carl, но не тех, кого называют Earl:
select * from Person where FirstName like '[A-D]arl'
... или чтобы найти обратное, используйте:
select * from Person where FirstName like '[!A-D]arl'
или (в зависимости от СУБД, предположительно):
select * from Person where FirstName like '[^A-D]arl'
Является ли этот тип подстановочных знаков частью стандарта SQL-92 и какие базы данных на самом деле его поддерживают? Например:
- Oracle 11g не поддерживает его
- SQL Server 2005 поддерживает его с оператором отрицания «^» (не «!»)