Select (sql)
Примеры[править | править вики-текст]
Download 46.98 Kb.
|
msql
- Bu sahifa navigatsiya:
- Ограничение возвращаемых строк[править | править вики-текст]
- Оконная функция ROW_NUMBER()[править | править вики-текст]
- Оконная функция RANK()[править | править вики-текст]
- Нестандартный синтаксис[править | править вики-текст]
Примеры[править | править вики-текст]
Для таблицы T запрос SELECT * FROM T; вернёт все столбцы всех строк данной таблицы. Для той же таблицы запрос SELECT C1 FROM T; вернёт значения столбца C1 всех строк таблицы— в терминах реляционной алгебрыможно сказать, что была выполнена проекция. Для той же таблицы запрос SELECT * FROM T WHERE C1 = 1; вернёт значения всех столбцов всех строк таблицы, у которых значение поля C1 равно '1'— в терминах реляционной алгебры можно сказать, что была выполненавыборка, так как присутствует ключевое слово WHERE. Последний запрос SELECT * FROM T ORDER BY C1 DESC; вернёт те же строки, что и первый, однако результат будет отсортирован в обратном порядке (Z-A) из-за использования ключевого слова ORDER BY с полем C1 в качестве поля сортировки. Этот запрос не содержит ключевого слова WHERE, поэтому он вернёт всё, что есть в таблице. Несколько элементов ORDER BY могут быть указаны разделённые запятыми [напр. ORDER BY C1 ASC, C2 DESC] для более точной сортировки. Отбирает все строки где поле column_name равен одному из перечисленных значений value1,value2,… SELECT * FROM TABLE_NAME WHERE column_name IN (value1,value2,...) Ограничение возвращаемых строк[править | править вики-текст]Согласно ISO SQL:2003 возвращаемый набор данных может быть ограничен с помощью: курсоров, или введением оконных функций в оператор SELECT Оконная функция ROW_NUMBER()[править | править вики-текст]Существуют различные оконные функции. ROW_NUMBER() OVER может быть использована для простого ограничения числа возвращаемых строк. Например, для возврата не более десяти строк: SELECT * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY KEY ASC) AS rownumber, COLUMNS FROM tablename ) AS foo WHERE rownumber <= 10 ROW_NUMBER может быть недетерминированным: если key не уникален, каждый раз при выполнении запроса возможно присвоение разных номеров строкам, у которых key совпадает. Когда key уникален, каждая строка будет всегда получать уникальный номер строки. Оконная функция RANK()[править | править вики-текст]Функция RANK() OVER работает почти так же, как ROW_NUMBER, но может вернуть более чем n строк при определённых условиях. Например, для получения top-10 самых молодых людей: SELECT * FROM ( SELECT RANK() OVER (ORDER BY age ASC) AS ranking, person_id, person_name, age
) AS foo WHERE ranking <= 10 Данный код может вернуть более чем 10 строк. Например, если есть два человека с одинаковым возрастом, он вернёт 11 строк. Нестандартный синтаксис[править | править вики-текст]Не все СУБД поддерживают вышеуказанные оконные функции. При этом многие имеют нестандартный синтаксис для решения тех же задач. Ниже представлены варианты простого ограничения выборки для различных СУБД:
Категории: Ключевые слова SQL Статьи с примерами кода SQL Download 46.98 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling