Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

COALESCE dans la clause Where ?

La réponse @Blorgbeard (en utilisant le top 1 et l'ordre par) est probablement la meilleure façon, mais juste pour être différent, vous pouvez également utiliser une sous-requête et n'existe pas :

SELECT name FROM names 
WHERE (colA = @colA) OR (colA = 'ALL' AND NOT EXISTS(
                                                SELECT name FROM names 
                                                WHERE colA = @colA)) 

Je suppose que "l'avantage" de ceci est qu'il utilise plus de sql standard.