从QoQ结果列按字母顺序排序

时间:2015-04-08 13:48:02

标签: coldfusion coldfusion-9 qoq

我有一个从SP返回的结果集,然后在QoQ中进行操作。结果以ABCabc顺序显示。我希望他们按照AaBbCc的顺序。

例如,说出"名称"列包含值" Steve,Andy,anuj,bill,Mike" 。当我按ORDER BY名称时,结果按以下顺序列出:

  • Andy,Mike,Steve,anuj,bill

而不是我想要的订单,这是:

  • Andy,anuj,bill,Mike,Steve"

1 个答案:

答案 0 :(得分:3)

解决此问题的方法是选择强制它降低或降低的列,然后按该列排序。这个例子适用于CF9和CF11。原谅快速而粗略的代码,但只是鞭打它以显示订购工作:

<cfscript>
    qry = QueryNew("TESTING");
    QueryAddRow(qry); QuerySetCell(qry, "TESTING", "A");
    QueryAddRow(qry); QuerySetCell(qry, "TESTING", "B");
    QueryAddRow(qry); QuerySetCell(qry, "TESTING", "C");
    QueryAddRow(qry); QuerySetCell(qry, "TESTING", "a");
    QueryAddRow(qry); QuerySetCell(qry, "TESTING", "b");
    QueryAddRow(qry); QuerySetCell(qry, "TESTING", "c");
</cfscript>

<cfquery name="qry2" dbtype="query">
    SELECT TESTING, LOWER(TESTING) AS TMP FROM qry ORDER BY TMP</cfquery>

<cfoutput query="qry2">
    #TESTING#<br />
</cfoutput>

这给了我以下输出:

A
a
B
b
C
c

如果你是在不做低位或高位的情况下做订单,那么你最终得到的输出类似于你想要的问题:

<cfquery name="qry3" dbtype="query">
    SELECT TESTING, LOWER(TESTING) AS TMP FROM qry ORDER BY TESTING</cfquery>

<cfoutput query="qry3">
    #TESTING#<br />
</cfoutput>

浏览器输出:

A
B
C
a
b
c