如何在查询中正确写入别名 SQL oracle

how to correctly write an alias in a query SQL oracle

这是我的查询

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 - "must name this expression with a column alias"

虽然 Oracle SQL 开发人员没有事先指出任何错误。另外我相信我正在使用别名 "query" 所以我真的不明白。帮助将不胜感激

尝试将别名放在子查询之后而不是子查询中的列名之后。

不过,我会这样重写查询:

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,因此无法对此进行测试。但试一试。

查看您的查询后,很难准确判断您正在尝试做什么。你能用示例数据更新问题并解释你要做什么吗?

我想出了解决办法。以前我在内部子查询 SELECT 语句中添加了别名,但这不是正确的方法。我应该做的是为整个子查询创建一个别名。所以像这样...

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;