2016-12-13 7 views
0

Ich erhalte einen Fehler beim Ausführen des folgenden Codes. Validierung und Flag sind Spalten vom Typ string. SetpointValue ist vom Typ float?U- SQL-Vergleich

@hf =

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

i Fehler folgende immer am

ERROR

VertexFailedFast. Scheitelpunktfehler hat einen schnellen Jobabbruch ausgelöst. Vertex ist fehlgeschlagen: SV1_Extract [0] [0] mit Fehler: Vertex user code error. BESCHREIBUNG Vertex fehlgeschlagen mit einem Schnellabbruch-Fehler

RESOLUTION

DETAILS

Vertex SV1_Extract [0] [0] x2 {43B20D9E-E63F-48AF-8E9A-FFFAE288FCB8} fehlgeschlagen

Fehler: Vertex Benutzercode Fehler

Exitcode = CsExitCode_StillActive Errorsnippet =

+0

Bitte fügen Sie das nächste Mal mehr der inneren Fehlermeldung hinzu. In diesem Fall ist es sehr wahrscheinlich, dass Sie in einigen Spalten Nullwerte haben. In C# gibt Ihnen das Anwenden einer Methode auf null eine Laufzeitausnahme. Alexandres Überarbeitung sollte dafür sorgen. –

Antwort

1

Sie sollten U-SQL SELECT WHERE Clause lesen, um zu verstehen, wie man Nullwerte vergleicht und wie man die verschiedenen Varianten von booleschen Operatoren effektiv nutzt. Die Rangfolge Ihrer Operatoren ist ebenfalls etwas verwirrend.

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