从 QoQ 结果列按字母顺序排序
Sorting in alphabetical order from QoQ result column
我有一个从 SP 返回的结果集,然后在 QoQ 中对其进行操作。结果以 ABCabc 顺序显示。我希望它们按 AaBbCc 顺序排列。
例如,假设 "names" 列包含值 "Steve, Andy, anuj, bill, Mike" 。当我按名称排序时,结果按以下顺序列出:
- 安迪、迈克、史蒂夫、阿努吉、比尔
而不是我想要的顺序,即:
- Andy、anuj、bill、Mike、Steve
解决此问题的一种方法是 select 强制它降低或升高的列,然后按该列排序。这个例子在 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
如果您改为通过不执行 lower 或 upper 来执行订单,您最终会得到类似于您描述的问题的输出:
<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
我有一个从 SP 返回的结果集,然后在 QoQ 中对其进行操作。结果以 ABCabc 顺序显示。我希望它们按 AaBbCc 顺序排列。
例如,假设 "names" 列包含值 "Steve, Andy, anuj, bill, Mike" 。当我按名称排序时,结果按以下顺序列出:
- 安迪、迈克、史蒂夫、阿努吉、比尔
而不是我想要的顺序,即:
- Andy、anuj、bill、Mike、Steve
解决此问题的一种方法是 select 强制它降低或升高的列,然后按该列排序。这个例子在 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
如果您改为通过不执行 lower 或 upper 来执行订单,您最终会得到类似于您描述的问题的输出:
<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