Поиск…


Вступление

В SQL SELECT возвращают наборы результатов из коллекций данных, таких как таблицы или представления. Операторы SELECT могут использоваться с различными другими предложениями, такими как WHERE , GROUP BY или ORDER BY для дальнейшего уточнения желаемых результатов.

Basic SELECT из таблицы

Выберите все столбцы из какой-либо таблицы (в этом случае системная таблица):

SELECT *
FROM sys.objects

Или выберите только некоторые конкретные столбцы:

SELECT object_id, name, type, create_date
FROM sys.objects

Фильтровать строки, используя предложение WHERE

Предложение WHERE фильтрует только те строки, которые удовлетворяют некоторому условию:

SELECT *
FROM sys.objects
WHERE type = 'IT'

Сортировка результатов с помощью ORDER BY

Предложение ORDER BY сортирует строки в возвращаемом результирующем наборе с помощью некоторого столбца или выражения:

SELECT *
FROM sys.objects
ORDER BY create_date

Результат группы с использованием GROUP BY

Предложение GROUP BY группирует строки по некоторому значению:

SELECT type, count(*) as c
FROM sys.objects
GROUP BY type

Вы можете применить некоторую функцию для каждой группы (агрегированную функцию) для вычисления суммы или количества записей в группе.

тип с
SQ 3
S 72
ЭТО 16
PK 1
U 5

Группы фильтров с использованием предложения HAVING

Предложение HAVING удаляет группы, которые не удовлетворяют условию:

SELECT type, count(*) as c
FROM sys.objects
GROUP BY type
HAVING count(*) < 10
тип с
SQ 3
PK 1
U 5

Возвращение только первых N строк

Предложение TOP возвращает только первые N строк в результате:

SELECT TOP 10 *
FROM sys.objects

Разбиение страницы с помощью OFFSET FETCH

Предложение OFFSET FETCH - это более продвинутая версия TOP. Он позволяет пропустить строки N1 и взять следующие строки N2:

SELECT *
FROM sys.objects
ORDER BY object_id
OFFSET 50 ROWS FETCH NEXT 10 ROWS ONLY

Вы можете использовать OFFSET без выборки, чтобы просто пропустить первые 50 строк:

SELECT *
FROM sys.objects
ORDER BY object_id
OFFSET 50 ROWS

SELECT без FROM (нет данных)

Оператор SELECT может быть выполнен без предложения FROM:

declare @var int = 17;

SELECT @var as c1, @var + 2 as c2, 'third' as c3 

В этом случае возвращается одна строка со значениями / результатами выражений.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow