Estou tentando criar um SQL que selecionará linhas com base na entrada do usuário. Uma das opções será o usuário selecionar todas as linhas.
Considere este exemplo:
WITH CTE_PROMPT AS (
SELECT 'M' Gender
),
CTE_DATA AS (
SELECT PERSON_NUMBER
,SEX
FROM Employees
)
SELECT CTE_DATA.*
FROM CTE_DATA
LEFT OUTER JOIN CTE_PROMPT ON CTE_DATA.Sex = CTE_PROMPT.Gender
WHERE CASE
WHEN Gender = 'ALL' THEN 1
WHEN Gender = SEX THEN 1
ELSE 0
END = 1
Os resultados corretos são mostrados quando o usuário seleciona 'M' ou 'F', mas nada é mostrado se o usuário seleciona 'ALL'. Como escrevo o SQL para que a opção 'ALL' mostre todos os registros?