我有一个如下所示的查询:
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>
答案 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)