Ich möchte Zeile basierend auf Parameterwert abrufen. Entweder könnte es Wert 'ABC' oder NULL sein. Unten sind die Quelltabelle und das erwartete Ergebnis, die ich versuche zu erreichen.Get Zeile aus Tabelle basierend auf Parameter
Source
column1 column2
--------------------------
value1 NULL
value2 ABC
mit Abfrage versucht, aber es ist zwei Reihen bekommen, die mit Wert1 und Wert2 sind.
Declare @Param1 varchar(20) = 'ABC'
Select *
from SourceTable
where column2 = @Param1 Or column2 is NULL
Wenn Wert 'ABC' dann Ergebnis -
column1 column2
--------------------------
value2 ABC
Wenn der Wert NULL ist dann Ergebnis -
column1 column2
--------------------------
value1 NULL
Vielleicht nichts hier kümmern , aber Sie könnten lesen über 'ISNULL()' und "Sargable" ... – Shnugo
Ich würde sagen, dass SARGability immer etwas ist, worüber man sich sorgen muss. Diese Abfrage ist möglicherweise für die Leistung in Ordnung, aber jemand anderes wird mitkommen und es kopieren und nicht verstehen, warum die andere Abfrage so schrecklich langsam ist. Es ist leicht genug zu beheben, sobald Sie wissen, dass ein Problem vorliegt. :) –