簡體   English   中英

SQL語法錯誤:“(”附近

[英]SQL syntax error: near “(”

當我嘗試運行此查詢時:

select branch_no, max (avg_salary)
from (select allocatedto, avg (salary)
      from staff, worker
      where staff.staff_no = worker.staff_no
      group by allocatedto) 
      as branch_avg (branch_no, avg_salary);

我收到此錯誤:

Error: near "(": syntax error
select my_alias1,my_alias2 from (select col1,col2,...) as A (my_alias1,my_alias2)

上面的語法在SQL Server有效。

要為派生表中的列添加別名,您需要在派生表內部使用AS 嘗試這個

SELECT Max (avg_salary)
FROM   (SELECT allocatedto  AS branch_no,
               Avg (salary) AS avg_salary
        FROM   staff
               INNER JOIN worker
                       ON staff.staff_no = worker.staff_no
        GROUP  BY allocatedto) AS branch_avg;

還開始使用INNER JOIN而不是舊式逗號分隔的INNER JOIN

在SQLite中,子查詢上的AS子句無法分配列名(並且一開始就不需要)。

要重命名(子)查詢的輸出列,必須在SELECT子句中使用AS:

SELECT branch_no,
       max(avg_salary) AS avg_salary
FROM (...);

假設SQL Server的版本是2008 R2,

select branch_no, max (avg_salary)
from (select allocatedto, avg (salary)
      from staff, worker
      where staff.staff_no = worker.staff_no
      group by allocatedto) 
    as branch_avg (branch_no, avg_salary)
group by branch_no;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM