SQL Server: ISNULL auf uniqueidentifier

Ich bin versucht, zu vergleichen eine Spalte col1 und eine variable @myvar im WHERE - Klausel. Beide enthalten in der Regel GUIDs, kann aber auch NULL-Werte.
Ich dachte, ich könnte um die Tatsache, dass NULL=NULL zu FALSE ausgewertet wird mithilfe WHERE ISNULL(col1, '')=ISNULL(@myvar, ''). Das wäre zu vergleichen mit zwei leeren Saiten statt, und zu TRUE ausgewertet werden.

Diese wird jedoch folgende Fehlermeldung:

Msg 8169, Ebene 16, Status 2, Zeile 3 Fehler bei der Konvertierung bei der Konvertierung
aus einer Zeichenfolge vom Datentyp uniqueidentifier.

Versuchte ich

DECLARE @myvar uniqueidentifier = NULL
SELECT ISNULL(@myvar,'') as col1

Gleiche Fehlermeldung.

Zwei Fragen:
Erstens bin ich versucht zu konvertieren, die eine uniqueidentifier-variable - obwohl es ein NULL-Wert in eine (leere!) string, nicht die andere Weise herum, wie die Fehlermeldung schon sagt. Was gibt?

Zweitens, gibt es einen besseren Weg, um word -, WHERE-Klausel, die ich brauche, um es zu ermöglichen, für den Vergleich uniqueidentifiers, kann NULL sein?

Wollen Sie Ihre gültige uniqueidentifiers in Zeichenfolgen konvertiert werden zu können?
shawnt00, für die die WHERE-Klausel der nicht-NULL-uniqueidentifiers nicht brauchen, um in Zeichenfolgen konvertiert werden. Vergleichen Sie einfach nur zu TRUE ausgewertet, so dass ich nur Datensätze abrufen, wo Sie gleich sind.

InformationsquelleAutor TVogt | 2015-08-28

Schreibe einen Kommentar