2017-10-04 1 views
0

je suit SQL,Comment avoir sous condition where basée sur la valeur du paramètre

DECLARE @EmployeeID Int 

SELECT * 
    FROM [Northwind].[dbo].[Orders] 
    WHERE OrderID = 10248 
    AND EmployeeID = @EmployeeID 

Je veux vous assurer IF @EmployeeID IS NULL alors ne pas inclure AND

Quelque chose comme,

SELECT * 
    FROM [Northwind].[dbo].[Orders] 
    WHERE OrderID = 10248 
    IF @EmployeeID IS NOT NULL 
    AND EmployeeID = @EmployeeID 

Je pourrais penser à créer une variable de table, puis à les filtrer en fonction de la valeur du paramètre, mais y a-t-il un meilleur moyen?

+0

Reportez-vous à https://stackoverflow.com/questions/87821/sql-if-clause-within-where-clause –

Répondre

1

Je pense que vous voulez:

WHERE OrderID = 10248 AND 
     (@EmployeeId IS NULL OR EmployeeID = @EmployeeID) 
1
DECLARE @EmployeeID Int 

SELECT * 
    FROM [Northwind].[dbo].[Orders] 
    WHERE OrderID = 10248 
    AND EmployeeID = ISNULL(@EmployeeID, EmployeeID)