Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

COALESCE na cláusula Where?


A resposta do @Blorgbeard (usando o top 1 e ordenar por) é provavelmente a melhor maneira, mas apenas para ser diferente, você também pode usar uma subconsulta e não existir:
SELECT name FROM names 
WHERE (colA = @colA) OR (colA = 'ALL' AND NOT EXISTS(
                                                SELECT name FROM names 
                                                WHERE colA = @colA)) 

Eu acho que a "vantagem" disso é que ele usa mais sql padrão.