Введение в DELPHI

       

Изменение порядка выводимых строк (ORDER BY)


Порядок выводимых строк может быть изменен с помощью опционального (дополнительного) предложения ORDER BY в конце SQL-запроса. Это предложение имеет вид: ORDER BY <порядок строк> [ASC | DESC]

Порядок строк может задаваться одним из двух способов:

  • именами столбцов
  • номерами столбцов.

Способ упорядочивания определяется дополнительными зарезервированными словами ASC и DESC. Способом по умолчанию - если ничего не указано - является упорядочивание "по возрастанию" (ASC). Если же указано слово "DESC", то упорядочивание будет производиться "по убыванию".

Подчеркнем еще раз, что предложение ORDER BY должно указываться в самом конце запроса.

Упорядочивание с использованием имен столбцов SELECT first_name, last_name, dept_no, job_code, salary FROM employee ORDER BY last_name

получить список сотрудников, упорядоченный по фамилиям в алфавитном порядке



FIRST_NAMELAST_NAMEDEPT_NO JOB_CODESALARY
JanetBaldwin110Sales61637.81
Oliver H.Bender000CEO212850.00
AnnBennet120Admin22935.00
DanaBishop621Eng62550.00
KellyBrown600Admin27000.00
Jennifer M.Burbank622Eng53167.50
KevinCook670Dir111262.50
RogerDe Souza623Eng69482.62
RobertoFerrari125SRep99000000.00
SELECT first_name, last_name, dept_no, job_code, salary FROM employee ORDER BY last_name DESC

получить список сотрудников, упорядоченный по фамилиям в порядке, обратном алфавитному

FIRST_NAMELAST_NAMEDEPT_NOJOB_CODESALARY
KatherineYoung623Mngr67241.25
BruceYoung621Eng97500.00
MichaelYanowski100SRep44000.00
TakashiYamamoto115SRep7480000.00
RandyWilliams672Mngr56295.00
K. J.Weston130SRep86292.94
ClaudiaSutherland140SRep100914.00
WalterSteadman900CFO116100.00
WillieStansbury120Eng39224.06
RogerReeves120Sales33620.62

Столбец, определяющий порядок вывода строк, не обязательно дожен присутствовать в списке выбираемых элементов (столбцов): SELECT first_name, last_name, dept_no, job_code FROM employee ORDER BY salary

получить список сотрудников, упорядоченный по их зарплате

FIRST_NAMELAST_NAMEDEPT_NOJOB_CODE
AnnBennet120Admin
KellyBrown600Admin
Sue AnneO'Brien670Admin
MarkGuckenheimer622Eng
RogerReeves120Sales
BillParker623Eng

Упорядочивание с использованием номеров столбцов

SELECT first_name, last_name, dept_no, job_code, salary * 1.1 FROM employee ORDER BY 5

получить список сотрудников, упорядоченный по их зарплате с 10% надбавкой

FIRST_NAMELAST_NAMEDEPT_NOJOB_CODE
AnnBennet120Admin25228.5
KellyBrown600Admin29700
Sue AnneO'Brien670Admin34402.5
MarkGuckenheimer622Eng35200
RogerReeves120Sales36982.6875
BillParker 623Eng38500

Допускается использование нескольких уровней вложенности при упорядочивании выводимой информации по столбцам; при этом разрешается смешивать оба способа. SELECT first_name, last_name, dept_no, job_code, salary * 1.1 FROM employee ORDER BY dept_no, 5 DESC, last_name

получить список сотрудников, упорядоченный сначала по номерам отделов, в отделах - по убыванию их зарплаты (с 10%), а в пределах одной зарплаты - по фамилиям

FIRST_NAMELAST_NAMEDEPT_NOJOB_CODE 
Oliver H.Bender000CEO234135
TerriLee000Admin59172.3
Mary S.MacDonald100VP122388.75
MichaelYanowski100SRep48400.000000001
LukeLeung110SRep75685.5
JanetBaldwin110Sales67801.59375
TakashiYamamoto115SRep8228000.0000001
YukiIchida115Eng6600000.0000001



Содержание раздела