#sql #sql-server
#sql #sql-сервер
Вопрос:
Итак, это вопрос.
Менеджеру в отделе кадров нужен список руководителей отделов, их зарплаты. В запросе должны отображаться название отдела, имя и фамилия (объединить столбцы имен в один столбец) и значения столбца зарплаты. Назовите столбцы в таблице результатов следующим образом: отдел, менеджер и зарплата. Отсортируйте таблицу результатов по зарплате. Используйте предложение WHERE для объединения таблиц. Используйте команды ФОРМАТИРОВАНИЯ столбцов для создания списка, который легко помещается на одной странице.
И это то, что у меня есть для этого до сих пор
SELECT FirstName||' '||LastName "Manager" FROM Employee
SELECT LastName "Last Name", FirstName "First Name",
DepartmentName "Department Name", Salary "Salary"
FROM Employee, Department
WHERE Employee.DepartmentNumber = Department.DepartmentNumber
Я знаю, что это неправильно, но я не могу понять, как сделать это по-другому
Я также борюсь с другим вопросом, а это
Перепишите запрос для приведенного выше вопроса, используя предложение FROM для объединения таблиц.
Пока у меня есть это, но я не уверен, как выполнить часть объединения.
SELECT LastName "Last Name", FirstName "First Name",
DepartmentName "Department Name", Salary "Salary"
FROM Employee e JOIN Department d
ON (e.DepartmentNumber = d.DepartmentNumber);
Спасибо за любую помощь
Комментарии:
1. SQL Server не соответствует стандарту SQL в отношении конкатенации строк. Вы должны использовать
вместо
||
there
Ответ №1:
Для объединения строк в SQL SERVER
вам необходимо использовать
operator
SELECT FirstName ' ' LastName as [First Name],
DepartmentName [Department Name], Salary
FROM Employee e JOIN Department d
ON (e.DepartmentNumber = d.DepartmentNumber)
Order by Salary
Если вы используете SQL SERVER 2012
, то используйте CONCAT
функцию
CONCAT(FirstName,' ',LastName) as [First Name]
Примечание: Использование Where
предложения для объединения двух таблиц является старым стилем и не рекомендуется всегда использовать явный INNER JOIN
синтаксис