Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
添加别名时SQL命令未正确结束_Sql_Oracle - Fatal编程技术网

添加别名时SQL命令未正确结束

添加别名时SQL命令未正确结束,sql,oracle,Sql,Oracle,所以,我得到了一个简单的查询,非常基本,但我不明白为什么,当我有一个别名用于查询时,我得到了一个SQL命令未正确结束的错误,我不明白为什么它现在不工作,而直到今天它还可以正常工作 查询: (select max(service) from t_post po where po.id = 591 ) AS SERVICE; 当查询为: (select max(service) from t_post po where po.id = 591 ); 我真的不明白为什么,而且这么突然。你似乎对

所以,我得到了一个简单的查询,非常基本,但我不明白为什么,当我有一个别名用于查询时,我得到了一个SQL命令未正确结束的错误,我不明白为什么它现在不工作,而直到今天它还可以正常工作

查询:

(select max(service) from t_post po  where po.id = 591 ) AS SERVICE;
当查询为:

(select max(service) from t_post po  where po.id = 591 );

我真的不明白为什么,而且这么突然。

你似乎对这个别名没有任何用处。尝试标记聚合列值:

SELECT 
    MAX(po.service) AS SERVICE 
FROM 
    t_post po 
WHERE 
    po.id = 591

如果在from子句中使用查询,则必须使用别名而不使用AS单词。例如,它看起来像:

select * from (select max(po.service) from  t_post po  where po.id = 591 ) SERVICE ....
然后您可以将子查询引用为服务


我希望答案对您有用。

事实上,它是一个更大查询的一部分,所以我需要我的子查询,我在这里写的子查询,作为别名,这就是为什么我使用max,只有一个结果。但是我隔离了这个查询,发现了这些问题。@Zaphod上下文较大的查询&如何使用它对于解决实际问题非常重要,请更新这个问题。@heikkim,这意味着这不是真正的查询,而是较大查询的问题。我会检查的。@Zaphod然后看一看在你的问题下有没有名字注释的马。@valex我在大查询中发现了错误,我缺少了右括号,所以我的别名没有得到很好的解释。事实上,它是一个大查询的一部分,所以我需要我在这里写的子查询作为别名,这就是为什么我使用max,只有一个结果。但是我隔离了这个查询,发现了这些问题。如果它是更大查询的一部分。。。那么您就不需要最后的分号了Oracle不支持表/查询别名的AS关键字。仅对于列别名,我显然可以从t_post po中选择maxservice,其中po.id=591作为t_表中的服务。我丢失了一个括号,现在添加了它,它可以工作了。这是一个列别名,而不是子查询别名。由于缺少使用它的上下文,您的第一个示例看起来像一个子查询。是的,我理解您的意思。由于子查询本身仍然会给出错误,我的第一个想法是子查询是问题所在,不要复制大查询。
select * from (select max(po.service) from  t_post po  where po.id = 591 ) SERVICE ....