这是我的查询
CREATE VIEW CourseQueuePositions AS
SELECT t2.code , t2.cid ,
(SELECT COUNT(*) as queue
FROM Waits t1
WHERE t2.code = t1.code AND t1.queue# <= t2.queue#)
FROM Waits t2;
我一直收到这个编译错误 命令行出错:3列:9 00998. 00000 - “必须使用列别名命名此表达式”
尽管Oracle SQL开发人员事先没有指出任何错误。另外我相信我使用别名“查询”所以我真的不明白。帮助将不胜感激
答案 0 :(得分:2)
尝试在子查询之后而不是在子查询中的列名之后放置别名。
虽然,我会重写查询:
CREATE VIEW CourseQueuePositions AS
SELECT t2.code , t2.cid , count(t1.code) queue
FROM Waits t1, Waits t2
WHERE t2.code = t1.code AND t1.queue# <= t2.queue# ;
我现在无法访问Oracle,因此无法对其进行测试。但试一试。
在审核您的查询后,很难确切地说您正在尝试这样做。你能用示例数据更新问题,并解释你想要做什么吗?
答案 1 :(得分:0)
我想出了解决方案。以前我在内部子查询SELECT语句中添加了别名,但这不是正确的方法。我应该做的是创建ENTIRE子查询的别名。所以像这样......
CREATE VIEW CourseQueuePositions AS
SELECT t2.code, t2.cid,
(SELECT COUNT(*)
FROM Waits t1
WHERE t1.code = t2.code AND t1.queue# <= t2.queue#) AS queue
FROM Waits t2;