Coldfusion 在cfloop中对查询进行分组

Coldfusion 在cfloop中对查询进行分组,coldfusion,coldfusion-8,cfquery,cfloop,Coldfusion,Coldfusion 8,Cfquery,Cfloop,我希望循环查询,并希望使用分组,就像使用cfoutput一样。我知道CF10增加了这种支持,但是否有一个脚本可以模拟这种行为,以便可以轻松地迭代项目 编辑: 通过重新排列cfoutput标记,可以绕过cfloop中缺少分组的问题,这样它们就不会嵌套。我之所以寻找cfloop解决方案,是因为嵌套cfoutput时,需要使用来自同一查询的结果。我想用我自己的QoQ和循环通过结果 好的,那么你想做这样的事情: <cfoutput query="query1"> <!---

我希望循环查询,并希望使用分组,就像使用
cfoutput
一样。我知道CF10增加了这种支持,但是否有一个脚本可以模拟这种行为,以便可以轻松地迭代项目


编辑:
通过重新排列
cfoutput
标记,可以绕过
cfloop
中缺少分组的问题,这样它们就不会嵌套。我之所以寻找
cfloop
解决方案,是因为嵌套
cfoutput
时,需要使用来自同一查询的结果。我想用我自己的QoQ和循环通过结果

好的,那么你想做这样的事情:

<cfoutput query="query1">
    <!--- stuff --->
    <cfoutput query="query2" group="col>
        <!--- more stuff --->
        <cfoutput>
            <!--- still more stuff --->
        </cfoutput>
        <!--- almost the last stuff --->
    </cfoutput>
    <!--- last stuff --->
</cfoutput>
您应该能够将其修改为:

<cfloop query="query1">
    <cfoutput>
        <!--- stuff --->
    </cfoutput>
    <cfoutput query="query2" group="col>
        <!--- more stuff --->
        <cfoutput>
            <!--- still more stuff --->
        </cfoutput>
        <!--- almost the last stuff --->
    </cfoutput>
    <cfoutput>
        <!--- last stuff --->
    </cfoutput>
</cfloop>


如果您想像使用
一样循环查询,为什么不直接使用
?不必太挑剔。我想了解你的问题。如果你说从一开始我就不用问了,是吗?我从来没有说过CF10的功能不是天赐之物(碰巧,我是将其引入语言的主要支持者之一)。我问的是为什么你不能直接使用
,你在问题中根本没有解释过这一点。您仍然应该更新您的问题,以包含此信息,因为它对您的问题有点关键。您不能将此
嵌套在CF9@AdamCameron你的CF9和我的不同。此:
抛出了此
无效的标记嵌套配置。
,正如预期的那样。@Daniel-有多少级别?单个级别的分组相对简单,即
if(query.currentRow eq 1或valueInCurrentRow neq valueInPreviousRow){输出值;}
如果您需要更多,它会变得复杂..“这是一堆我宁愿避免的思考和键入”同意,我只是觉得有人已经这么做了,因为对这个功能的要求似乎并没有那么不合理。你展示的选项是,如果我想重构代码,我将如何处理它。我相信有人会有一些代码,他们随时会弹出。我很惊讶Peter Boughton还没有出现(你确实唱过“Candyman Candyman Candyman Candyman Candyman Candyman Candyman”,对吧?;-)
<cfloop query="query1">
    <cfoutput>
        <!--- stuff --->
    </cfoutput>
    <cfoutput query="query2" group="col>
        <!--- more stuff --->
        <cfoutput>
            <!--- still more stuff --->
        </cfoutput>
        <!--- almost the last stuff --->
    </cfoutput>
    <cfoutput>
        <!--- last stuff --->
    </cfoutput>
</cfloop>