Ключевые слова ALL / D STINCT

При указании ключевого слова ALL в результат запроса выводятся все строки, удовлетворяющие сформулированным условиям, тем самым разрешается включение в результат одинаковых строк (одинаковость строк определяется на уровне результата отбора, а не на уровне исходных данных). Параметр АLL используется по умолчанию.

Если в запросе SELECT указывается ключевое слово DISTINCT, то в результат выборки не будет включаться более одной повторяющейся строки. Таким образом, каждая возвращенная строка будет уникальной. Уникальность строки при этом определяется на уровне строк результата выборки, а не на уровне исходных данных. Если в результат выборки включаются два столбца, уникальность будет определяться по значениям обоих этих столбцов. В отдельности значения в первом и втором столбцах могут повторяться, но комбинация значений в обоих столбцах должна быть уникальна. Аналогичные правила действуют и в отношении большего количества столбцов.

Рассмотрим результат использования ключевых слов ALL и DISTINCT на примере выборки столбцов Семестр и Отчетность из таблицы «Учебный план» базы данных «Сессия» (рис. 7.4). Сначала выполним запрос с указанием ключевого слова ALL:

SELECT ALL Семестр, Отчетность FROM Учебный_ план

 

 

 

Фрагмент результата представлен на рис. 7.4, а.

Теперь заменим ключевое слово ALL на DISTINCT:

SELECT DISTINCT ALL Семестр, Отчетность

FROM учебный_ план

 

В этом случае результат запроса, представленный на рис. 7.4, этостроки, содержащие одинаковые значения в столбцах, включенные только один раз. Этот результат должен свидетельствовать только о наличии различных форм отчетности в семестрах.

 

Ключевое слово ТОР и [PERCENT] [WITH TIES]

Использование ключевого слова TOPn, где n — числовое значение, позволяет отобрать в результат не все строки, а только n первых. При этом выбираются первые строки результата выборки, а не исходных данных. Поэтому набор строк в результате выборки при указании ключевого слова TOPможет меняться в зависимости от порядка сортировки. Если в запросе используется раздел WHERE, то ключевое слово TOPработает с набором строк, возвращенных после применения логического условия, определенного в разделе WHERE.

Продемонстрируем использование ключевого слова TOP:

SELECT TOP 5 * FORM Студенты

 

В этом примере из таблицы «Студенты» базы данных «Сессия» было выбрано 5 первых строк (рис. 7.5):

 

 

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

SELECT TOP 10 PERCENT * FROM Студенты

Всего в таблице было 115 строк, следовательно, 10 % будет составлять 11,5 строк. В результате будут выданы 12 строк (рис. 7.6):

 

 

Если указанное количество процентов строк представляет собой нецелое число, то сервер всегда выполняет округление в большую сторону.

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

 

SELECT TOP 10 PERCENT * FROM Студенты ORDER BY Номер_ Группы

 

В результате выполнения такого запроса будут выданы следующие 12 строк (рис. 7.7).

При указании вместе с предложением ORDER BY ключевого слова WITH TIES в результат будут включены еще и строки, совпадающие

 

 

по значению колонки сортировки с последними выведенными строками запроса SELECT TOP n [PERCENT].

Использование ключевого слова WITH TIES в предыдущем примере позволит обеспечить выдачу в ответ на запрос информации обо всех студентах первой по порядку группы:

 

SELECT TOP 10 PERCENT WITH TIES *

FROM Студенты

ORDER BY Номер_ группы

 

После выполнения запроса получаем следующий результат (рис. 7.8).

 

Предложение < Список _выбора >

Синтаксис предложения <Список_ выбора> следующий:

<Список выбора>::=

{ <Имя таблицы> / <Псевдоним таблицы> }.*

{ <Имя столбца> / <Выражение> }

[ [ AS ] <Псевдоним столбца>]

<Псевдоним столбца> = <Выражение> }

[,...,n]

 

Символ «*» означает включение в результат всех столбцов, имеющихся в списке таблиц раздела FROM.

Если в результат не нужно включать все столбцы всех таблиц, то можно явно указать имя объекта, из которого необходимо выбрать все столбцы (<Имя_ таблицы>.* или <Псевдоним_ таблицы>.*).

Отдельный столбец таблицы в результат выборки включается явным указанием имени столбца (параметр <Имя_ столбца>). Столбец должен принадлежать одной из таблиц, указанных в разделе FROM.Если столбец с указанным именем имеется более чем в одном источнике данных, перечисленных в разделе FROM,то необходимо явно указать имя источника данных, к которому принадлежит столбец в формате <Имя_ таблицы>.<Имя_ столбца>. В противном случае будет выдано сообщение об ошибке.

Например, попробуем выбрать данные из столбца ID_ Дисциплина, который имеется в таблицах «Дисциплина» и «Учебный_ план»:

 

SELECT ID_Дисциплина, Наименование, Семестр.

FROM Дисциплина, Учебный_ план

 

В ответ будет выдано сообщение об ошибке, указывающее на некорректное использование имени ID_Дисциплина.

То есть в этом случае необходимо явно указать имя источника данных, которому принадлежит столбец, например:

 

SELECT Дисциплина. ID_Дисциплина, Наименование, Семестр

FROM Дисциплина, Учебный_ план

 

Столбцам, возвращаемым как результат выполнения запроса, могут быть присвоены псевдонимы. Псевдонимы позволяют изменить имя исходного столбца или поименовать столбец, содержимое которого получено как результат вычисления выражения. Имя псевдонима указывается с помощью параметра [AS] <Псевдоним столбца>. Ключевое слово AS необязательно при задании псевдонима.

В общем случае сервер не требует уникальности имен столбцов результата выборки, поэтому разные столбцы могут иметь одинаковые имена или псевдонимы.

Столбцы в результате выборки могут быть не только копией столбца одной из исходных таблиц, но и формироваться на основе вычисления выражения. Такой столбец в списке выбора задается с помощью конструкции <Выражение> [[AS] <Псевдоним_ столбца>]. Выражение при этом может содержать константы, имена столбцов, функции, а также их комбинации. Дополнительно столбцу, формируемому на основе вычисления выражения, можно присвоить псевдоним, указав его с помощью параметра [AS] <Псевдоним_ столбца>. По умолчанию вычисляемый столбец не имеет имени.

Другой способ формирования вычисляемого столбца состоит в использовании конструкции со знаком равенства: <Псевдоним_ столбца> = <Выражение>. Единственным отличием этого способа от предыдущего является необходимость обязательного задания псевдонима. В простейшем случае выражение является именем столбца, константой, переменной или функцией. Если в качестве выражения выступает имя столбца, то получаем еще один способ задания псевдонима для столбца.

Рассмотрим следующий пример. Пусть для таблицы «Студенты» необходимо построить запрос, представляющий фамилию, имя и отчество в одной колонке. Используя операцию конкатенации (сложения) символьных строк и значение ФИО в качестве псевдонима столбца, построим запрос:

 

SELECT ТОР 10 Фамилия + ' ' + имя + ' ' + Отчество as Фио, Номер_ Группы

FROM Студенты

 

Результат запроса показан на рис. 7.9.

 

 








Дата добавления: 2015-04-15; просмотров: 1447;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.012 сек.