ich die unten Abfrage habe, ohne die IsNull Betreiber neu geschrieben werden, wie ich auf diesen Spalten die Verschlüsselung verwenden und IsNull nicht
unterstützt
Ich nehme an, Sie meinen, dass die Spalten c.email1
und E.email
niemals null sind, aber manchmal verschlüsselte Strings enthalten, die die Abwesenheit von Daten auf eine Weise ähnlich der normalerweise von einem NULL übermittelten vermitteln. Zum Beispiel wird möglicherweise die verschlüsselte Form einer leeren Zeichenfolge verwendet. In diesem Fall können Sie ihre Werte an den verschlüsselten null-äquivalent vergleichen:
Case
When Indicator = 'N' Then Null
when c.email1 != 'some-encrypted-string-equivalent-to-null' then c.email1
when E.email != 'some-encrypted-string-equivalent-to-null' then E.email
else ORG_Email
End EmailAddress
natürlich, dass, dass es übernimmt ein einziger Null-äquivalent String ist, zumindest auf einer Pro-Spalte-Basis, die möglicherweise nicht der Fall sein. Wenn es dann nicht die einzigen Optionen, die ich sehe
den E-Mail-Wert in der Abfrage entschlüsseln (möglicherweise über eine benutzerdefinierte Funktion) und die Bedingungen schreiben auf den entschlüsselten Werten basieren, oder
geben Sie sowohl die encypted c.email1
und E.email
als separate Spalten oder null für beide, wenn Indicator
ist 'N'
, und wählen Sie, welche auf der Anwendungsseite nach der Entschlüsselung zu verwenden.
Wenn Sie mehr als zwei Dinge zu vergleichen und wählen Sie die erste nicht-null, können Sie mit [coalesce] (https://msdn.microsoft.com/en-us/library/ms190349.aspx) anstatt 'isnull' mehrmals zu nennen. Ich bin mir nicht sicher, ob dir das hier helfen würde. –