gpt4 book ai didi

coldfusion-11 - 如何防止 Coldfusion 中的 CFC 中的查询返回区分大小写的结果

转载 作者:行者123 更新时间:2023-12-02 03:24:35 25 4
gpt4 key购买 nike

我遇到一个问题,我正在使用 Ben Nadel 的 QueryAppend.cfc 连接来自两个不同数据源的两个记录集。我得到的数据是正确的,但数据的顺序不是预期的。组合结果集的排序方式如下,所有结果都以小写字母开头附加到记录集的底部:

Screen grab of cfdump

我期待(并且需要)以下类型的排序:

苹果

艺术

瓶子

男孩

硬币

飞镖

代码如下:

<!---Calling Template--->

<cfquery name="getDataSet1" datasource="datasource1">
SELECT param1
FROM table1
</cfquery>

<cfquery name="getDataset2" datasource="datasource2">
SELECT param1
FROM table2
</cfquery>

<cfscript>
// Create object
TheUnionObject = createObject("component", "cfc/QueryAppend");
// Call the function
myUnionResult = TheUnionObject.QueryAppend(getDataSet1, getDataSet2);
</cfscript>

<!---Dump results--->
<cfdump var="#myUnionResult#">






<!---QueryAppend.cfc--->
<cfcomponent>
<cffunction name="QueryAppend" access="public" returntype="query"
output="false"
hint="This takes two queries and appends the second one to the first one.
Returns the resultant third query.">
<cfargument name="QueryOne" type="query" required="true" />
<cfargument name="QueryTwo" type="query" required="true" />
<cfset var LOCAL = StructNew() />
<cfquery name="LOCAL.NewQuery" dbtype="query">
(
SELECT
*
FROM
ARGUMENTS.QueryOne
)
UNION
(
SELECT
*
FROM
ARGUMENTS.QueryTwo
) ORDER BY Param1 ASC
</cfquery>
<cfreturn LOCAL.NewQuery />
</cffunction>
</cfcomponent>

我假设这种默认排序行为是一些底层的 ColdFusion 代码。谁能告诉我如何更改此默认 ORDER BY 行为?

最佳答案

一个快速修复方法是在 select 语句中添加一个字段,将要排序的字段值大写 ( upper ),然后按该字段排序,但仍输出不区分大小写的字段。大致如下:

select   *, 
upper(name) as upperName
from query
order by upperName

关于coldfusion-11 - 如何防止 Coldfusion 中的 CFC 中的查询返回区分大小写的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53769368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com