SQL 命令在 as 语句后没有正确结束
SQL command not properly ended after the as statement
我想创建一个名为 PROJECT_FEMALE 的视图。来自 3 个不同的表,但 sql 给了我那个错误。
CREATE VIEW PROJECT_FEMALE
AS
SELECT e.Ssn, e.Fname, e.Lname, p.Pnumber, p.Pname, w.Hours
FROM Employee AS e, Works_on AS w, Project AS p
WHERE e.Ssn = w.Essn AND w.pno = p.Pnumber AND e.sex = 'F';
错误:
[Code: 933, SQL State: 42000] ORA-00933: SQL command not properly ended
[Script position: 103 - 105]
它指向 Employee
之后的语句,但我不明白问题出在哪里,我该如何解决?
Oracle 不支持 table 带有 AS
的别名,您只能使用 AS
作为列别名;所以,你的代码应该是:
CREATE VIEW PROJECT_FEMALE
AS
SELECT e.Ssn,
e.Fname,
e.Lname,
p.Pnumber,
p.Pname,
w.Hours
FROM Employeee, Works_on w, Project p
WHERE e.Ssn = w.Essn AND w.pno = p.Pnumber AND e.sex = 'F';
或(更好)
CREATE VIEW PROJECT_FEMALE
AS
SELECT e.Ssn,
e.Fname,
e.Lname,
p.Pnumber,
p.Pname,
w.Hours
FROM Employee e
INNER JOIN Works_on w ON (e.Ssn = w.Essn)
INNER JOIN Project p ON (w.pno = p.Pnumber)
WHERE e.sex = 'F';
我想创建一个名为 PROJECT_FEMALE 的视图。来自 3 个不同的表,但 sql 给了我那个错误。
CREATE VIEW PROJECT_FEMALE
AS
SELECT e.Ssn, e.Fname, e.Lname, p.Pnumber, p.Pname, w.Hours
FROM Employee AS e, Works_on AS w, Project AS p
WHERE e.Ssn = w.Essn AND w.pno = p.Pnumber AND e.sex = 'F';
错误:
[Code: 933, SQL State: 42000] ORA-00933: SQL command not properly ended
[Script position: 103 - 105]
它指向 Employee
之后的语句,但我不明白问题出在哪里,我该如何解决?
Oracle 不支持 table 带有 AS
的别名,您只能使用 AS
作为列别名;所以,你的代码应该是:
CREATE VIEW PROJECT_FEMALE
AS
SELECT e.Ssn,
e.Fname,
e.Lname,
p.Pnumber,
p.Pname,
w.Hours
FROM Employeee, Works_on w, Project p
WHERE e.Ssn = w.Essn AND w.pno = p.Pnumber AND e.sex = 'F';
或(更好)
CREATE VIEW PROJECT_FEMALE
AS
SELECT e.Ssn,
e.Fname,
e.Lname,
p.Pnumber,
p.Pname,
w.Hours
FROM Employee e
INNER JOIN Works_on w ON (e.Ssn = w.Essn)
INNER JOIN Project p ON (w.pno = p.Pnumber)
WHERE e.sex = 'F';