【发布时间】:2016-09-26 15:31:41
【问题描述】:
所以我必须根据其他一些列值输出查询列值。为此,我使用 cfloop 检查查询列中的每个值,然后设置值。我的代码如下所示:
<cfloop query="myQuery">
<cfif status EQ "ABC" OR status EQ "DEF">
<cfif trim(exitStatus) EQ ''>
<cfset col8val = #col8val#>
<cfelse>
<cfset col8val = #col8val# A>
</cfif>
</cfif>
</cfloop>
所以我想知道我应该使用什么来将我的结果存储在一个地方,这样我就不必循环了,我只想在上面的 cfloop 之后转储我的结果集。我不能使用数组或结构,因为两者都需要额外的循环来获得结果。我也尝试在 SQL 中执行此操作,但我无法组合来自两个不同列的两个 CASE 语句。如果有人可以帮助解决这个问题,请告诉我。
【问题讨论】:
-
SELECT CASE WHEN status = 'ABC' OR status = 'DEF' AND (exitStatus = '' OR exitStatus IS NULL) THEN col8val ELSE col8val + 'A'这样的东西应该可以在 SQL 中使用。另一个选项是更新查询本身。 bennadel.com/blog/…。在编写大量循环之前,我会先研究一下。 -
一旦你弄清楚了案例结构,就可以为每个方法计时。虽然使用数据库应用您的逻辑消除了对循环的要求,但不能保证它会更有效。
-
@Leeish 为什么不直接回答?我在几乎是答案的问题上看到了很多 cmets。
-
因为这不是他实际问题的下水道。
-
下水道?我认为评论/答案非常好;-) 说真的,很高兴看到人们想要回答实际问题(尽可能),而不是仅仅发布“答案”。
标签: sql coldfusion case cfloop