Дополнительно к стандартным операторам GROUP BY и HAVING SQL Server поддерживает еще четыре специальных расширения для группировки данных: ROLLUP, CUBE, GROUPING SETS и OVER.

ROLLUP

Оператор ROLLUP добавляет суммирующую строку в результирующий набор:

1
2
3
SELECT Manufacturer, COUNT (*) AS Models, SUM (ProductCount) AS Units
FROM Products
GROUP BY Manufacturer WITH ROLLUP

Для группировки данных в T-SQL применяются операторы GROUP BY и HAVING, для использования которых применяется следующий формальный синтаксис:

1
2
3
4
5
6
SELECT столбцы
FROM таблица
[ WHERE условие_фильтрации_строк]
[ GROUP BY столбцы_для_группировки]
[ HAVING условие_фильтрации_групп]
[ ORDER BY столбцы_для_сортировки]
Агрегатные функции выполняют вычисления над значениями в наборе строк. В T-SQL имеются следующие агрегатные функции:
  • AVG: находит среднее значение

  • SUM: находит сумму значений

  • MIN: находит наименьшее значение

  • MAX: находит наибольшее значение

  • COUNT: находит количество строк в запросе

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

Выражения в функциях AVG и SUM должно представлять числовое значение. Выражение в функциях MIN, MAX и COUNT может представлять числовое или строковое значение или дату.

Все агрегатные функции за исключением COUNT(*) игнорируют значения NULL.

Для изменения уже имеющихся строк в таблице применяется команда UPDATE. Она имеет следующий формальный синтаксис:

1
2
3
4
UPDATE имя_таблицы
SET столбец1 = значение1, столбец2 = значение2, ... столбецN = значениеN
[ FROM выборка AS псевдоним_выборки]
[ WHERE условие_обновления]

Например, увеличим у всех товаров цену на 5000:

1
2
UPDATE Products
SET Price = Price + 5000

Оператор IN

Оператор IN позволяет определить набор значений, которые должны иметь столбцы:

1WHERE выражение [ NOT ] IN (выражение)

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

Например, выберем товары, у которых производитель либо Samsung, либо Xiaomi, либо Huawei:

1
2
SELECT * FROM Products
WHERE Manufacturer IN ( 'Samsung', 'Xiaomi' , 'Huawei' )

Для фильтрации в команде SELECT применяется оператор WHERE. После этого оператора ставится условие, которому должна соответствовать строка:

1WHERE условие

Если условие истинно, то строка попадает в результирующую выборку. В качестве можно использовать операции сравнения. Эти операции сравнивают два выражения. В T-SQL можно применять следующие операции сравнения:

  • = сравнение на равенство (в отличие от си-подобных языков в T-SQL для сравнения на равенство используется один знак равно)

  • <> сравнение на неравенство

  • < меньше чем

  • > больше чем

  • !< не меньше чем

  • !> не больше чем

  • <= меньше чем или равно

  • >= больше чем или равно

Оператор ORDER BY позволяет отсортировать извлекаемые значения по определенному столбцу:

1
2
3
SELECT *
FROM Products
ORDER BY ProductName

В данном случае строки сортируются по возрастанию значения столбца ProductName

 
Компания Xiaomi представила свой игровой ноутбук под названием Mi Notebook Pro 2 на конференции ChinaJoy. Новинка получила тонкий корпус, мощную систему охлаждения и производительную начинку, за которую журналисты уже успели окрестить лэптоп «киберспортивным монстром».

Популярные новости

Опрос

Какие языки программирования вы хотите видеть на сайте

Другие опросы...