Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tsql 遇到被零除的错误。T-SQL_Tsql_Sql Server 2012 - Fatal编程技术网

Tsql 遇到被零除的错误。T-SQL

Tsql 遇到被零除的错误。T-SQL,tsql,sql-server-2012,Tsql,Sql Server 2012,我在SQL 2012中运行了以下T-SQL SELECT machine_id, speed_gps_kph, odometer_total, event_timestamp, 1.0 * (speed_gps_kph - LAG(speed_gps_kph, 1) OVER (PARTITION BY machine_id ORDER BY event_timestamp)) / datediff(ss, LAG(event_timestamp, 1) OVER (PARTITI

我在SQL 2012中运行了以下T-SQL

SELECT machine_id, speed_gps_kph, odometer_total, event_timestamp, 
   1.0 * (speed_gps_kph - LAG(speed_gps_kph, 1) OVER (PARTITION BY machine_id ORDER BY event_timestamp)) /
   datediff(ss, LAG(event_timestamp, 1) OVER (PARTITION BY machine_id ORDER BY event_timestamp), event_timestamp)
FROM   Simple_speed
然而,正如错误所指出的,我有一个被零除的问题


关于这个问题有很多帖子和答案,但我很难做到这一点。

这里有一个简单的方法,可以使用
NULLIF(…,0)
控制被零除的错误,而无需重复自己的操作:


现在,对于分母为零的行,表达式将返回
NULL

问题标题是准确的错误吗?最好在问题的主体中加上“这就是错误”这样的字眼:
SELECT machine_id, speed_gps_kph, odometer_total, event_timestamp, 
   1.0 * (speed_gps_kph - LAG(speed_gps_kph, 1) OVER (PARTITION BY machine_id ORDER BY event_timestamp)) 
   / NULLIF(datediff(ss, LAG(event_timestamp, 1) OVER (PARTITION BY machine_id ORDER BY event_timestamp), event_timestamp),0)
FROM Simple_speed