Ich habe UI, wo es eine Suchfunktion gibt. Es gibt 2 Parameter in der Suche.SQL Abfrage Eingaben benötigt
Der Benutzer kann von einem der beiden params suchen das Ergebnis zu erhalten (dh entweder davon kann null sein)
ich Schwierigkeiten habe die in immer die genaue SQL (SP), wenn einer der Werte zu schreiben ist Null.
Zum Beispiel wie folgt:
declare @param1, @param2
create table #Ids
(
Id bigint,
Name varchar(10)
)
--Inserting multiple ids in my temp table
IF @param1 IS NOT NULL
BEGIN
INSERT INTO #Ids (Id, Name)
SELECT DISTINCT Id, Name
FROM MainIdTable I
WHERE (I.Name = @param1)
END
SELECT
I.Name, S.ID, S.Value
FROM
SecondTable S
JOIN
#Ids I ON S.Id = P.Id
WHERE
S.Date = '2012-01-06'
AND s.tempId = ISNULL(@param2, p.tempId)
- Wenn Benutzer
param1
Wert eingibt, funktioniert die Suche feine - Wenn der Benutzer beide betritt
param1
undparam2
Werte, dann auch, es funktioniert
Aber wenn der Benutzer keinen param1
Wert eingibt, aber nur einen param2
Wert eingibt, funktioniert die Suche nicht .
Ich glaube, das ist, weil meine temporäre Tabelle leer ist und wenn wir einen Beitritt machen, gibt es nichts zurück.
Irgendwelche Abhilfe, um das zu erreichen?
Dank
Markieren Sie die von Ihnen verwendeten dbms. Dieser Code ist produktspezifisch. – jarlh
Verwenden Sie 'LEFT JOIN' – JohnHC
Left Join würde mir alle Zeilen geben, während ich nur Zeilen, die mit – user1563677