SQL Server 2014: Soit sélectionné ou toutes les valeurs dans condition

Voici ce que j'essaie d'accomplir. J'ai une procédure qui reçoit employeeIds comme arguments facultatifs et les stocke dans une table temporaire (temp_table) comme ceci

empId ------- 3432 3255 5235 2434 

Maintenant, j'ai besoin de courir en dessous de la requête dans 2 conditions:

1ère condition : si l'argument n'est pas vide alors ma requête devrait être …

 SELECT * FROM DEPARTMENTS INNER JOIN temp_table ON emp_no = empId 

2ème condition : si l'argument est vide, il prendra toutes les lignes de la table department

 SELECT * FROM DEPARTMENTS 

Une option que je peux utiliser est:

 IF (@args <> '') BEGIN SELECT * FROM DEPARTMENTS INNER JOIN temp_table ON emp_no = empId END ELSE BEGIN SELECT * FROM DEPARTMENTS END 

Mais je cherche une meilleure option où je n'ai pas besoin d'écrire presque la même requête deux fois. S'il vous plaît aider.

Je recommand de restr fidèle à ce que vous faites déjà.
C'est la manière la plus propre et la plus sûre de la performance.

Essaye celui-là

 SELECT * FROM DEPARTMENTS WHERE ( @args <> '' OR EXISTS (SELECT 1 FROM temp_table WHERE emp_no = empId) )