2016-12-13 193 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));