Являются ли подстановочные знаки стиля "charlist" частью стандарта SQL-92? - PullRequest
0 голосов
/ 29 октября 2010

Подстановочные знаки 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 поддерживает его с оператором отрицания «^» (не «!»)

Ответы [ 2 ]

2 голосов
/ 29 октября 2010

Стандарт SQL-99 имеет предикат SIMILAR TO, который использует стиль "charlist", а также символы подстановки "%" и "_".

Ничего подобного (без каламбура) в стандарте SQL-92, однако.

1 голос
/ 29 октября 2010

Операторы "charlist" выглядят как регулярные выражения или их ограниченное подмножество. AFAIK В SQL-92 нет синтаксиса регулярных выражений, хотя многие базы данных поддерживают регулярные выражения, и КАК они поддерживают его, варьируется. Например, в Oracle есть функции для сравнения и замены регулярных выражений. Не знаю, как это делают другие.

Делись и наслаждайся.

...