|
Программирование >> Исключение дубликатов строк
что если нужно выполнить совершенно противоположное действие и исключить определенные строки из набора результатов? В этом случае используется условие сравнения с оператором не равно . Допустим, предложен следуюш,ий запрос: Give те а list of vendor names and phone numbers for all our vendors, with the exception of those here in Bellevue . ( Предоставить список имен и номеров телефонов всех наших поставщиков за исключением тех, которые находятся в Беллевью .) Данный запрос требует необходимо исключить поставш,иков, расположенных в Беллевью, и для этой задачи будет использоваться условие не равно . Фраза за исключением явно указывает на то, что условие не равно соответствует данному запросу. Помните об этом при рассмотрении процесса преобразования. Преобразование: Select vendor name and phone number from the vendors ;able for all vendors except those based in Bellevue (Выбрать имя поставш,ика и номер телефона из таблицы Поставш,ики для вСех поставш,иков за исключением размеш,енных в Беллевью) Select vendor name ttn6 phone number from the vendors table for all vendors except those based in where city <> Bellevue (Выбрать имя поставш,ика, номер телефона из Поставш,ики , где город <> Беллевью) SELECT VendName, VendPhone FROM Vendors WHERE VendCity <> Bellevue Уточнение Внимание! Стандарт SQL использует символ <> для оператора не равно . В некоторых СУБД используется другая форма записи, например != (в Microsoft SQL Server и Sybase) и -.= (в IBM DB2). Обязательно уточните по документации своей СУБД соответствуюш,ее обозначение для этого оператора. Это простое условие исключило всех поставш.иков из Беллевью. Позже мы покажем другой метод исключения строк из набора результатов. Меньше и больше Часто бывает нужно получить строки, в которых конкретное значение столбца меньше или больше некоторого значения. При таком сравнении используются операторы сравнения меньше (<), меньше или равно (< = ), больше (>) или больше или равно (>=). Тип сравниваемых данных определяет отношение между этими значениями. Символьная строка Числа Дата/Время Такое сравнение определяет, располагается ли значение первого выражения до (<) значения или после (>) значения второго выражения в сортирующей последовательности. Например, а < с можно интерпретировать, как Располагается ли а раньше с? Такое сравнение определяет, является ли значение первого выражения меньше (<) или больше (>) значения второго выражения. Например, 10 > 5 можно интерпретировать, как вопрос: /О больше 5? . Такое сравнение определяет, является ли значение первого выражения раньше (<) или позже (>), чем значения второго выражения. Например, Ч999-05-16 < 4999-12-15 можно интерпретировать как вопрос: 16 мая 1999 г. раньше 15 декабря 1999 г.? Даты и время оцениваются в хронологическом порядке. Посмотрим, как можно использовать предикаты сравнения для ответа на запрос. Are there any orders where the ship date was accidentally posted earlier than the order date? ( Имеются ли заказы, для которых дата поставки случайно была указана раньше даты заказа? ) В этом случае следует воспользоваться оператором сравнения меньше , потому что нужно определить, была ли внесена какая-либо дата поставки, имевшая место раньше соответствующей даты заказа. Вот как преобразуется этот запрос: Преобразование: Select order number from the orders table where the ship date is earlier than the order date (Выбрать номер заказа из таблицы Заказы , Уточнение: дата поставки которого раньше даты заказа) Select order number from the orders table where the ship date is earlier than the < order date (Выбрать номер заказа из Заказы , для которого дата поставки < даты заказа) SELECT OrderNumber FROM Orders WHERE Shipdate < OrderDate Набор результата оператора SELECT будет включать только те строки из таблицы Orders (Заказы), для которых выполняется условие поиска. В следующем примере для извлечения соответствуюплей информации требуется оператор сравнения больше : Are there any classes that earn more than four credits? ( Имеются ли курсы лекций, за которые присуждают более четырех условных очков? ) Преобразование: Select class ID from the classes table for all classes that earn more than four credits (Выбрать идентификатор курса лекций из таблицы Курсы лекций для всех курсов, за которые присувдают более четырех условных очков) Select class ID from the classes table for all classes that earn more than four where credits > 4 (Выбрать идентификатор курса лекций из Курсы лекций , где условные очки > 4) SELECT ClassID FROM Classes WHERE Credits > 4 Уточнение Набор результатов, сгенерированный этим оператором SELECT, включает только те лекции, за которые начисляется четыре и больше условных очков, как, например, линейная алгебра и прикладная физика. Теперь рассмотрим некоторые примеры со значениями, которые могут быть не только больше или меньше, но также равны значению, с которым выполняется сравнение. 7 need the names of everyone weve hired since January 1, 1989 ( Мне нужны все имена тех, кто принят к нам на работу с 1 января 1989 .) Для этого запроса требуется использовать сравнение больше или равно , потому что требуется извлечь все даты приема на работу с 1 января 1989 г. до текуш,его дня, включая сотрудников, принятых на эту дату. При выполнении преобразования не забудьте указать все нужные столбцы для условия SELECT. Преобразование: Select first name and last name as EmployeeName from the employees table for all employees hired since January 1, 1989 (Выбрать имя и фамилию как EmployeeName из таблицы Сотрудники для всех сотрудников, принятых на работу с 1 января 1989)
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |