如何将查询查询用作子查询(Coldfusion)
我想将查询查询用作子查询,但出现语法错误:遇到。这是我的查询qHistoryData是我的查询对象:如何将查询查询用作子查询(Coldfusion),coldfusion,coldfusion-11,qoq,Coldfusion,Coldfusion 11,Qoq,我想将查询查询用作子查询,但出现语法错误:遇到。这是我的查询qHistoryData是我的查询对象: <cfquery dbtype="query"> SELECT * FROM ( SELECT t2.*, ROW_NUMBER() OVER( PARTITION BY collectid ORDER BY update_on DESC
<cfquery dbtype="query">
SELECT *
FROM (
SELECT
t2.*,
ROW_NUMBER() OVER(
PARTITION BY collectid
ORDER BY update_on DESC
) AS seqnum
FROM qHistoryData t2
) t
WHERE t.seqnum = 1;
</cfquery>
查询查询完全在Java的ColdFusion应用层实现,不涉及数据库,因此不能使用数据库中的许多可用功能 在qHistoryData查询中添加一列,该列通过按collectid顺序计算分区上的行数,并将DESC上的行数更新为seqnum,然后在查询中执行以下操作:
<cfquery dbtype = "query">
SELECT *
FROM qHistoryData
WHERE seqnum = 1;
</cfquery>
您的另一个选择是手动处理查询对象。这是实际查询的简化版本吗?这在我看来非常有效。@VBokšić我使用Oracle,我的错误是:查询语法错误。遇到。我没有更多的错误。正如@Andrew所说的,看起来还可以。下面是演示:查询的查询不支持行数和行数以上。正如其他人已经提到的,ColdFusion查询的SQL能力有限。它不是一个完整的实现。鉴于OP已经拥有的数据,这是获得所需结果的好方法。然而,我仍然认为这可能是可以从原始查询返回的数据,而不必产生QoQ的开销。