ColdFusion可以用更少的行来做到这一点吗?

时间:2017-08-22 14:27:35

标签: coldfusion

我有一个如下所示的查询:

    DATEUPLOADED             ID     TYPE
1   2017-08-14 15:47:45.0   2405507 D
2   2017-08-14 15:47:44.0   2405506 D
3   2017-08-16 08:43:58.0   2407829 S
4   2017-08-16 08:43:41.0   2407828 S
5   2017-08-18 13:13:29.0   2411567 C
6   2017-08-18 13:16:20.0   2411571 P
7   2017-08-18 15:42:39.0   2411753 C
8   2017-08-18 15:44:39.0   2411759 C
9   2017-08-18 15:45:14.0   2411760 C
10  2017-08-18 15:45:48.0   2411761 C
11  2017-08-18 16:39:05.0   2411849 A
12  2017-08-18 16:40:12.0   2411853 V

是否可以用更少的行来执行以下操作:

<cfquery name="GetCount" dbtype="query" >
   SELECT COUNT(ID) FROM TheAboveQuery WHERE Type = 'C'
</cfquery>

<cfif GetCount.RecordCount gt 0 > 
     Do something
</cfif> 

2 个答案:

答案 0 :(得分:2)

您没有指定运行所需的CF引擎或版本。有一些甚至更短的方法,无论你是否添加换行符都可以使它们成为一个单行。我要小心,它不是竞争对手,所以为了便于阅读,不要害怕额外的几行!

这很好,很整洁,应该适用于Lucee Server和Adobe 2016

if( TheAboveQuery.filter( function(r){ return r.type=='C'; }).recordCount ) {
  // do something
}

如果您使用的是Lucee 5,您可以使用Lambda(箭头功能)而不是传统的封口来减少一些角色,但您不太可能真正从中受益在这一点上。

if( TheAboveQuery.filter( (r) => return r.type=='C' ).recordCount ) {
  // do something
}

答案 1 :(得分:1)

根据您希望实现的目标,这可能没问题:

MAX(FEE_PROV)