T-SQL | SELECT | Примеры

 

➢SELECT

➢ORDER BY (Ascending)

➢ORDER BY (Descending)

➢INNER JOIN

➢LEFT JOIN

➢RIGHT JOIN

➢FULL JOIN

➢WHERE

➢WHERE ... OR/AND ...

➢WHERE ... AND...OR ...

➢GROUP BY или DISTINCT

➢GROUP BY and aggregate

➢GROUP BY, aggregate and HAVING

 

См. также

➢SELECT FROM Linked Server & COLLATE

➢UNION SELECT

➢SELECT FROM SubQuery

➢JOIN TO SubQuery

 

 


 

➢SELECT

 

--данные по клиентам с результатом выражения 'Call today', если дата рождения клиента совпадает с текущей

SELECT            

firstname AS [First Name]

,lastname AS [Last Name]

,CASE WHEN birthdate = GETDATE() THEN 'Call today' ELSE NULL END AS [Birthday Call]

FROM customers


 

 

➢ORDER BY (Ascending) / сортировка в порядке возрастания

 

--данные по клиентам, отсортированные по фамилии в порядке возрастания

SELECT            

firstname AS [First Name]

,lastname AS [Last Name]

FROM customers

ORDER BY lastname


 

 

➢ORDER BY (Descending) / сортировка в порядке убывания

 

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

SELECT            

firstname AS [First Name]

,lastname AS [Last Name]

FROM customers

ORDER BY lastname DESC


 

 

➢INNER JOIN / связывание объектов "один к одному"

 

--данные по клиентам и связанными с ними городами

SELECT            

cust.firstname AS [First Name]

,cust.lastname AS [Last Name]

,city.cityName AS [City Name]

FROM customers cust

INNER JOIN cities city

ON cust.cityid = city.cityid


 

или

 


SELECT            

cust.firstname AS [First Name]

,cust.lastname AS [Last Name]

,city.cityName AS [City Name]

FROM

Customers cust,

Cities city

WHERE cust.CityID = city.CityID


 

 

➢LEFT JOIN / связывание объектов "многие к одному"

 

--данные по клиентам и городам со связью типа "выбор всех строк из таблицы клиентов, даже если города на клиента не найдено"

SELECT            

cust.firstname AS [First Name]

,cust.lastname AS [Last Name]

,city.cityName AS [City Name]

FROM customers cust

LEFT JOIN cities city

ON cust.cityid = city.cityid


 

 

➢Пример SELECT-выражения, связывающего объекты с помощью RIGHT JOIN

 

Отбираем данные по клиентам (customers) и городам (cities) со связью типа  "выбор всех строк из таблицы cities, даже если на город не найдено подможества клиентов":

 


SELECT        

cust.firstname AS [First Name]

,cust.lastname AS [Last Name]

,city.cityName AS [City Name]

FROM customers cust

RIGHT JOIN cities city

ON cust.cityid = city.cityid


 

 

➢Пример SELECT-выражения, связывающего объекты с помощью FULL OUTER JOIN

 

Отбираем данные по клиентам (customers) и по городам (cities) со связью типа "выбор всех строк из таблицы customers и всех строк из таблицы cities даже если по связи не найдено подможеств с обеих сторон":

 


SELECT    

cust.firstname AS [First Name]

,cust/lastname AS [Last Name]

,city.cityName AS [City Name]

FROM customers cust

FULL OUTER JOIN cities city

ON cust.cityid = city.cityid


 

 

➢Пример SELECT-выражения с фильтрацией данных с помощью оператора WHERE

 

Отбираем данные по клиентам в городе "Москва":

 


SELECT            

cust.firstname AS [First Name]

,cust.lastname AS [Last Name]

,city.cityName AS [City Name]

FROM customers cust

INNER JOIN cities city

ON cust.cityid = city.cityid

WHERE (city.cityName LIKE 'Moscow')


 

 

➢Пример SELECT-выражения с несколькими фильтрами данных с помощью WHERE ... OR/AND ...

 

Отбираем данные по клиентам в городе "Москва" или "Санкт Петербург":

 


SELECT            

cust.firstName AS [First Name]

,cust.lastName AS [Last Name]

,city.cityName AS [City Name]

FROM customers cust

INNER JOIN        cities city

ON cust.cityid = city.cityid

WHERE (city.cityName LIKE 'Moscow' OR city.cityName LIKE 'St. Petersburg')


 

Отбираем данные по клиентам в городе "Москва" и чтобы были только "Петровы":

 


SELECT            

cust.firstname AS [First Name]

,cust.lastname AS [Last Name]

,city.cityName AS [City Name]

FROM customers cust

INNER JOIN        cities city

ON cust.cityid = city.cityid

WHERE (city.cityName LIKE 'Moscow' AND cust.lastname LIKE 'Petrov')


 

 

➢Пример SELECT-выражения с несколькими фильтрами данных с помощью WHERE... AND...OR...

 

Отбираем данные по клиентам "Петровым" в городе "Москва" или "Петровым" в "Санкт Петербурге":

 


SELECT            

cust.firstname AS [First Name]

,cust.lastname AS [Last Name]

,city.cityName AS [City Name]

FROM customers cust

INNER JOIN        cities city

ON cust.cityid = city.cityid

WHERE

city.cityName IN ('Moscow', 'St. Petersburg')

AND

cust.lastname LIKE 'Petrov'


 

или (другой вариант):

 


SELECT            

cust.firstname AS [First Name]

,cust.lastname AS [Last Name]

,city.cityName AS [City Name]

FROM customers cust

INNER JOIN cities city

ON cust.cityid = city.cityid

WHERE

(city.cityName LIKE 'Moscow' AND cust.lastname LIKE 'Petrov')

OR

(city.cityName LIKE 'St. Petersburg' AND cust.lastname LIKE 'Petrov')


 

 

➢Пример SELECT-выражения с группировкой данных с помощью оператора GROUP BY

 

Отбираем сгруппированные данные по городам и фамилиям клиентов:

 


SELECT            

city.cityName AS [City Name]

,cust.lastname AS [Client Last Name]

FROM customers cust

INNER JOIN cities city

ON cust.cityid = city.cityid

GROUP BY        

city.cityName,

cust.lastname


 

Аналогом такой группировки в целях получения уникальных записей Город-Клиент может быть выражение с применением оператора DISTINCT. Такой запрос сработает быстрее:

 


SELECT DISTINCT            

city.cityName AS [City Name]

,cust.lastname AS [Client Last Name]

FROM customers cust

INNER JOIN cities city

ON cust.cityid = city.cityid


 

 

➢Пример SELECT-выражения с группировкой данных с помощью оператора GROUP BY и вычислением агрегированных итогов

 

Отбираем данные по городам и количеству записей клиентов в каждом городе:

 


SELECT        

city.cityName AS [City Name]

,COUNT(cust.lastname) AS [Count of Customers]

FROM customers cust

INNER JOIN cities city

ON cust.cityid = city.cityid

GROUP BY        

city.cityName


 

См. также: Aggregate Functions (агрегирующие функции)

 

 

➢Пример SELECT-выражения с группировкой данных с помощью оператора GROUP BY, вычислением агрегированных итогов и фильтрацией с помощью оператора HAVING

 

Отбираем данные по городам и количеству записей клиентов в каждом городе, но клиентов берем только "Петровых":

 


SELECT        

city.cityName AS [City Name]

,COUNT(cust.lastname) AS [Count of Customers]

,cust.lastname

FROM customers cust

INNER JOIN cities city

ON cust.cityid = city.cityid

GROUP BY        

city.cityName,

cust.lastname

HAVING (cust.lastname LIKE 'Petrov')


 

См. также:

➢Проверка уникальности с помощью GROUP BY

➢Применение OVER (PARTITION BY)

 



© 2006-2026 | Анна Петросян | pashelp@yandex.ru