|
Программирование >> Исключение дубликатов строк
документацию по программному обеспечению базы данных и проконсультируйтесь с администратором БД, чтобы определить схему сортировки по умолчанию для своей базы данных. fl теперь вернемся к порядку При наличии условия ORDER BY можно придать информации, извлекаемой из таблицы, больший смысл. Это относится как к простым запросам, так и к сложным. Можно перефразировать свои запросы так, чтобы они указывали требования по сортировке. Например, вопрос Категории каких курсов лекций предлагаются в настоящий момент? можно переделать в Перечислить категории предлагаемых нами курсов лекций и представить их в алфавитном порядке . Прежде чем начать работу с запросом SELECT, необходимо скорректировать способ определения преобразуемого утверждения. Это включает добавление новой части в конец преобразуемого утверждения для учета новых требований по сортировке, определенных в запросе. Select <item> from the <source> and order by <column(s) (Выбрать <элемент> из <источник> и упорядочить по <столбец(ы)>) Теперь, когда запрос будет включать фразы типа отсортировать результаты по названию города , показать их в порядке по годам или привести список по именам и фамилиям , изучайте запрос более тщательно, чтобы определить, какой столбец или столбцы необходимо использовать в целях сортировки. Это простое упражнение, поскольку большинство людей использует такие типы фраз, а столбцы, которые нужны для сортировки, обычно самоочевидны. Как только соответствующий столбец или столбцы установлены, используйте их в качестве замены для <столбец(ы) в преобразуемом утверждении. Рассмотрим простой запрос, чтобы увидеть, как это работает: List the categories of classes we offer and show them in alphabetical order . ( Составить список категорий предлагаемых курсов лекций и показать их в алфавитном порядке .) Преобразование: Select category from the classes table and order by category (Выбрать категории из таблицы Курсы лекций и упорядочить по категории) Уточнение: Select category from the classes table and order by category (Выбрать категорию из Курсы лекций , упорядочить по категории) SQL SELECT Category FROM Classes ORDER BY Category В данном примере можно предположить, что категория будет использоваться для сортировки, поскольку это единственный столбец, указанный в запросе. Также можно предположить, что сортировка должна производиться в порядке возрастания, потому что в запросе не указано противоположное. Это безопасное предположение. В соответствие со стандартом SQL, если не определен порядок сортировки, то автоматически предполагается сортировка в порядке возрастания. Однако, если вы хотите все указать явно, вставьте ASC (от Ascending - по возрастанию) после Category в условии ORDER BY. В следующем запросе столбец, необходимый для сортировки, определяется более явно: Show те а list of vendor names in zip code order . ( Показать список имен поставииков, располоо/сив их в порядке почтовых индексов .) Преобразование: Select vendor name and zip code from the vendors table and order by zip code (Выбрать имена поставщиков и почтовые коды из таблицы поставщиков и упорядочить их по почтовому индексу) Уточнение: Select vendor name ш6 zip code from the vendors table ttne order by zip code (Выбрать имя поставщика, почтовый индекс из Поставщики , упорядочить по почтовому индексу) SQL SELECT VendName, VendZipCode FROM Vendors ORDER BY VendZipCode Если нужно отобразить набор результатов в обратном порядке, вставьте ключевое слово DESC (от Descending - по убыванию) после соответствующего столбца в условии ORDER BY. Посмотрите, как изменяется оператор SELECT из предыдущего примера, когда требуется представить информацию, отсортированную по почтовому индексу в порядке убывания: SQL SELECT VendName. VendZipCode FROM Vendors ORDER BY VendZipCode DESC В следующем примере представлен более сложный запрос, который требует сортировки нескольких столбцов. Единственным отличием между этим примером и предыдущим является то, что в нем используется больше столбцов в условии ORDER BY. Обратите внимание, что столбцы разделены запятыми в соответствии с синтаксической диаграммой, показанной ранее на рис. 4.10. Display the names of our employees, including their phone number and ID number, and list them by last names and first name . ( Отобразить имена служаиих, включая номера их телефонов и идентификационные номера, из таблицы Служащие , упорядочив их по фамилии и имени .) Преобразование: Select last name, first name, phone number, and employee ID from the employees table and order by last name and first name (Выбрать фамилию, имя, номер телефона и идентификационный номер служащего из таблицы Служащие и упорядочить их по фамилии и имени) Уточнение: Select last name, first name, phone number, atte employee ID from the employees table attd order by last name and first name (Выбрать фамилию, имя, номер телефона и вдентификационный номер из Служащие и упорядочить по фамилии, имени) SQL SELECT EmpLastName, EmpFirstName, EmpPhoneNumber, EmployeelD FROM Employees ORDER BY EmpLastName, EmpFirstName Co столбцами в условии ORDER BY можно проделать интересный опыт, определив разный порядок сортировки для каждого столбца. В предыдущем примере можно указать убывающий порядок для фамилии и возрастающий для имени. Так будет выглядеть оператор SELECT после внесения соответствующих изменений: SQL SELECT EmpLastName, EmpFirstName, EmpPhoneNumber, EmployeelD FROM Employees ORDER BY EmpLastName DESC. EmpFirstName ASC Хотя использование ключевого слова ASC необязательно, при его включении оператор приобретает большую ясность. Предыдущий пример вызывает интересный вопрос, имеет ли какое-либо значение расположение столбцов в условии ORDER BY. Ответ гласит Да! . Последовательность важна потому, что СУБД анализирует столбцы в условии ORDER BY слева направо. Важность последовательности возрастает прямо пропорционально количеству используемых столбцов. Всегда располагайте столбцы в условии ORDER BY в надлежащей последовательности, чтобы сортировка результата выполнялась в соответствующем порядке.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |