点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好。 我有一个报告,我在命令...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好。 我有一个报告,我在命令...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好。
我有一个报告,我在命令部分使用了" IF THEN"功能,并且我认为这会导致性能下降。 例如,下面类似于命令部分中整个SQL的1/5:
if('{?pgmid}'如'1'+'%')和'{?geotype}'='station_response_area' 开始 选择identity_num, 单元, event_date, station_response_area地理类型, measure_time, CONVERT(CHAR(8),DATEADD(second,measure_time,0),108)作为Response_Time, pgmid, NFPA标准, 响应类别 符合标准 将(measure_time作为varchar)转换为time_sec, pgmdorder, event_type, property_use 来自vw_nfpa_firstArv_RPT 介于'{?BeginDate}'和'{?EndDate}'之间的event_date 和pgmid = {?PgmID} 按measure_time asc排序 结束 if((('{?pgmid}'如'2'+'%')或('{?pgmid}'如'3'+'%'))和'{?geotype}'='station_response_area' 开始 选择identity_num, 单元, event_date, station_response_area地理类型, measure_time, CONVERT(CHAR(8),DATEADD(second,measure_time,0),108)作为Response_Time, pgmid, NFPA标准, 响应类别 符合标准 将(measure_time作为varchar)转换为time_sec, pgmdorder, event_type, property_use 来自[DW_PROD]。[dbo]。[vw_nfpa_ERF_RPT] 介于'{?BeginDate}'和'{?EndDate}'之间的event_date 和pgmid = {?PgmID} 按measure_time asc排序 结束
是否可以用其他方法代替" IF THEN"以增强报告的性能?
If..Then绝对会减慢查询速度。
我会尝试将条件从If..Then移至where子句,然后使用" UNION ALL"将查询字符串化 一起。 像这样的东西:
通过首先检查参数,如果参数没有表明应该运行查询的一部分,则选择实际上不会执行任何操作。
此外,您也不会 不需要使用" +'%'",只需将"%"放在值的末尾,就像我上面显示的那样。
-Dell
一周热门 更多>