|
Программирование >> Исключение дубликатов строк
символов, а символ подчеркивания представляет собой единственный произвольный обычный символ. Способ определения образца строки устанавливает, какие значения извлекаются из типизированного выражения. В таблице 6.1 показаны примеры различных типов образцов строк, которые можно определить. Таблица 6.1 Примеры определенных образцов строк
Посмотрим, как можно использовать условие совпадения с образцом для следующего запроса: 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.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |