2016-12-13 25 views
0

我在执行以下代码时出错。验证和标志是字符串类型的列。 SetpointValue的类型是float?U- SQL比较

@hf =

SELECT * FROM @ParaLimits 
WHERE !Validation.Equals ("Relative") || (!Flag.Equals ("Setpoint") AND !Flag.Equals ("AdjSetpoint") || !SetpointValue.Equals ("")); 

我收到以下错误

ERROR

VertexFailedFast。顶点故障触发了快速作业中止。顶点失败:SV1_Extract [0] [0],错误:顶点用户代码错误。 说明 顶点失败,一个快速失败的错误

解决方案

详情

顶点SV1_Extract [0] [0] .v2以{43B20D9E-E63F-48AF-8E9A-FFFAE288FCB8}失败

错误: 顶点用户代码错误

退出码= CsExitCode_StillActive Errorsnippet =

+0

下次请添加更多内部错误信息。在这种情况下,最有可能在某些列中有空值。在C#中,将方法应用于null会给你一个运行时异常。亚历山大的重写应该照顾这一点。 –

回答

1

您应该阅读U-SQL SELECT WHERE Clause,以了解如何比较空值以及如何有效使用各种布尔运算符。您的运营商优先权也有些混乱。

WHERE Validation != "Relative" OR (Flag != "Setpoint" AND (Flag != "AdjSetpoint" OR SetpointValue != null));