Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou fazendo um sistema de sorteio e preciso e se o número sorteado não tiver no BD gostaria de pegar os 10 mais próximos, como fazer isso? O sistema é em C# com SQL Server.
Bom dia.
Uma forma simples de fazer seria:
DECLARE
@NUMERO INT = 5
SELECT TOP 10 ABS(TABELA.NUMERO - @NUMERO) AS DIFERENCA, TABELA.NUMERO
FROM TABELA
ORDER BY 1, 2
Digamos que tenhamos uma lista de números de 1 a 15, e o número 5 não exista na tabela, vai retornar a menor diferença para o número ordenado de forma crescente, ficando: