SQL 逗号错误



我正在为学校做SQL作业,这是我正在做的查询。

SELECT 
Regions.RegionName, Countries.CountryName, 
(Employees.LastName + ', ' + Employees.FirstName) AS EmployeeName, 
(EmployeeTitles.Title + ' ' + CAST (Employees.Level AS VARCHAR), 
Employees.Salary
FROM 
Regions, 
Countries, 
Employees, 
EmployeeTitles
WHERE 
Regions.RegionID = Countries.RegionID AND
Countries.CountryID = Employees.CountryID AND
Employees.TitleID = EMployeeTitles.TitleID
ORDER BY 
RegionName, 
CountryName, 
LastName, 
Title, 
Salary;

给我错误的逗号就在"Cast(Employee.Level AS VARCHAR("之后,并且给我一个错误,说"','附近的语法不正确-

谢谢。

您在逗号之前错过了右括号。

(EmployeeTitles.Title + ' ' + CAST (Employees.Level AS VARCHAR), 

应该成为

(EmployeeTitles.Title + ' ' + CAST (Employees.Level AS VARCHAR)), 

使用正确的显式JOIN语法:

select r.RegionName, c.CountryName, 
concat(e.LastName, ',', e.FirstName) AS EmployeeName,
concat(et.Title, ',', CAST(e.Level AS VARCHAR(255))) AS [??],
e.Salary
from Regions r
inner join Countries c on c.RegionID  = r.RegionID 
inner join Employees e on e.CountryID  = c.CountryID 
inner join EmployeeTitles et on et.TitleID = e.TitleID
order by r.RegionName, c.CountryName, e.LastName, e.title, e.salary;

使用cast/convert()函数时始终定义长度。这里有一个有趣的帖子,你可以参考 坏习惯踢:声明 VARCHAR 没有(长度(

最新更新