Quero o maior número único possível da tabela. Há duplicatas na tabela, então quero que o resultado final reflita nulo porque não há um único número maior.
Eu tentei todas as modificações possíveis na minha consulta para que meu código retornasse valores nulos, mas não retorna. Esse é um problema do leetcode que eu estava tentando resolver e tentando construir um entendimento muito mais profundo do problema na minha consulta SQL.
Só precisava saber como posso introduzir valores NULL manualmente. Eu sei a resposta de codificação real para a pergunta, e é por isso que preciso de uma boa explicação do que estou fazendo errado, junto com modificações neste código.
Obrigado por toda a ajuda que vocês fornecem.
Entrada:
num |
---|
8 |
8 |
7 |
7 |
3 |
3 |
Saída:
num |
---|
Esperado:
num |
---|
nulo |
Aqui está o código:
/* Write your T-SQL query statement below */
WITH CTE AS
(
SELECT *,
ROW_NUMBER() OVER (PARTITION BY num ORDER BY num) AS RN
FROM MyNumbers
),
CTE2 AS
(
SELECT TOP 1 num
FROM CTE
WHERE num NOT IN (SELECT num FROM CTE WHERE RN >= 2)
ORDER BY num DESC
)
SELECT
(CASE
WHEN num IS NULL OR num = ''
THEN NULL
ELSE num
END) AS num FROM CTE2;