Программирование >>  Исключение дубликатов строк 

1 ... 47 48 49 [ 50 ] 51 52 53 ... 152


символов, а символ подчеркивания представляет собой единственный произвольный обычный символ. Способ определения образца строки устанавливает, какие значения извлекаются из типизированного выражения. В таблице 6.1 показаны примеры различных типов образцов строк, которые можно определить.

Таблица 6.1

Примеры определенных образцов строк

Образец строки

Обработанный критерий

Примеры

возвращенных значений

shaX

Строка символов может быть любой длины, но должна начинаться с sha .

Shannon, Sharon, Shawn

Xson

Строка символов может быть любой длины, но должна заканчиваться на son .

Benson, Johnson, Morrison

XhanX

Строка символов может быть любой длины, но должна содержать han .

Buchanan, Handel, Johansen, Nathanson

Строка символов может иметь длину только в три символа, а первая и вторая буквы должны быть го .

Rob, Ron, Roy

Строка символов может иметь длину только в три символа, а вторая и третья буквы должны быть im .

Jim, Kim, Tim

Строка символов может иметь длину только в четыре символа, а вторая и третья буквы должны быть аг .

Bart, Gary, Mark

Строка символов может быть любой длины, но вторая и третья буквы должны быть *at .

Gates, Matthews, Patterson

Строка символов может быть любой длины, но вторая и третья буквы от конца должны быть ас .

Apodaca, Tracy, Wallace

Посмотрим, как можно использовать условие совпадения с образцом для следующего запроса:

Give те а list of customers whose last names begins with Mar , ( Предоставить список клиентов, фамилии которых начинаются с Маг .)

Подобные запросы обычно содержат фразы, указывающие на необходимость использования условия совпадения с образцом. Приведем несколько примеров типов фраз, которые могут встретиться:

...начинается с Her

...начинается с Ва

...включает слово Park ...содержит буквы han



...содержит ave в середине

...C son в конце

...заканчивается на ez

Определить тип образца строки, необходимого для запроса, относительно легко. Раз известен тип образца, можно продолжить процесс преобразования.

Преобразование: Select last name and first name from the customers table

where the last name begins with Mar (Выбрать фамилию и имя из таблицы Клиенты , у которых фамилия начинается с Маг)

Уточнение: Select last name оё first name from the customers table

where the last name begins with like Mar% (Выбрать фамилию, имя из Клиенты , у которых фамилия соответствует шаблону Маг%)

SQL SELECT CustLastName, CustFirstName

FROM Customers

WHERE CustLastName LIKE MarX

Набор результатов для этого оператора SELECT включает такие фамилии, как Marks , Marshall , Martinez и Marx , потому что нас интересует совпадение только первых трех букв.

Вот другой запрос, на который можно ответить, используя условие совпадения:

Show те а list of vendor names where the word ToresV appears in the street address .

( Показать список поставщиков, у которых название улицы в адресе содержит слово Forest .)

Преобразование: Select vendor name from the vendors table

where the street address contains the word Forest (Выбрать имя поставщика из таблицы Поставщики , у которого название улицы в адресе содержит слово Forest)

Уточнение: Select vendor name from the vendors table where

the street address contains the word like %Forest% (Выбрать имя поставщика из Поставщики , у которого улица типа %Forest%)

SQL SELECT VendName

FROM Vendors

WHERE VendStreetAddress LIKE XForestX



В данном случае строка из таблицы Vendors (Поставщики) включается в набор результатов, только если адрес содержит такие названия улиц, как Forest Park Place , Forest Ridge Avenue , Evergreen Forest Drive или Black Forest Road .

Хотя с помощью соответствующих групповых символов можно вести поиск для любого образца строки, однако, если значения, которые нужно извлечь, сами одержат символ процента или подчеркивания, возникает проблема. Например, так произойдет при попытке извлечь значение МХ 445, потому что оно содержит символ подчеркивания. Из этого затруднительного положения можно выйти, используя опцию ESCAPE предиката LIKE, как показано на рис. 6.5.

Опция ESCAPE позволяет назначить единообразный строковый литерал, называемый управляющим символом, для указания того, как СУБД должна интерпретировать символ процента или символ подчеркивания внутри образца строки. Поместите управляющий символ после ключевого слова ESCAPE и заключите его в одиночные кавычки, как для любого литерала типа символьной строки. Когда в образце строки управляющий символ предшествует групповому символу, СУБД интерпретирует этот групповой символ буквально.

Вот пример использования опции ESCAPE:

Show те а list of products that have product codes beginning

with VJOO and ending in a single number or letter .

( Показать список товаров с кодом товара, который начинается

с GJOO, а заканчивается одной цифрой или буквой ,)

Преобразование: Select product name and product code from the products

table where the product code begins with G 00 and ends in a single number or letter (Выбрать наименование и код продукта из таблицы Продукты , для которых код начинается с G 00 и заканчивается отдельной цифрой или буквой)

Уточнение: Select product name and product code from the products

table where the product code begins with like G00

and ends in a single number or letter (Выбрать наименование и код продукта из Продукты , для которых код типа *С\ 00 )

SQL SELECT ProductName, ProductCode

FROM Products

WHERE ProductCode Like G\ 00 ESCAPE \

Очевидно, что для ответа на этот вопрос необходимо использовать опцию ESCAPE. В противном случае СУБД интерпретирует символ подчеркивания в образце строки как групповой символ. Обратите внимание на то, что управляющий символ включен в уточнение. Это гарантирует, что при определении оператора SELECT вы не забудете использовать опцию ESCAPE.



1 ... 47 48 49 [ 50 ] 51 52 53 ... 152

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика