Estou construindo essa condição where concatenando a variável @whereClause no meu procedimento armazenado. Neste ponto, estou usando o caso para adicionar valores adicionais. se existe uma maneira melhor de fazer isso?
SET @whereClause =
( CASE
-- APPType Clinical
WHEN (@ApplicationType = 'Clinical') THEN @whereClause + ' AND vpgl.AppType = Clinical'
-- APPType Patients
WHEN (@ApplicationType = 'Patients') THEN @whereClause + ' AND vpgl.AppType = Patients'
-- APPType Web
WHEN (@ApplicationType = 'Web') THEN @whereClause + ' AND vpgl.AppType = null'
ELSE @whereClause
END
)
Acho que esta é uma abordagem melhor, mais segura, mais autodocumentada e mais escalável:
Se você realmente quiser usar uma
CASE
expressão (que não se destina ao controle de fluxo ), você pode dizer:Você pode torná-lo mais curto: