Dúvida Banco SQL - Como pegar o menor valor de uma linha que possui várias colunas de valores ?

27/09/2021

0

Tenho uma tabela no SQL que se encontra assim:

| id| valor1 | valor2 | valor3 | valor4 | valor5 |
|:-:|:------:|:------:|:------:|:------:|:------:|
| 1 | 7 | 5 | 3 | 6 | 8 |
| 2 | 3 | 2 | 6 | 9 | 7 |
| 3 | 4 | 9 | 5 | 1 | 8 |

Queria uma query que me retornasse a seguinte tabela (ou informação visual):

| id| valor1 | valor2 | valor3 | valor4 | valor5 |
|:-:|:------:|:------:|:------:|:------:|:------:|
| 3 | 1 | 4 | 5 | 8 | 9 |
| 2 | 2 | 3 | 6 | 7 | 9 |
| 1 | 3 | 5 | 6 | 7 | 8 |

Ou seja, me retorne os ids, listados pelo menor preço entre as linhas.
Observando que quando retorna os Ids, já exibe os mesmos com suas colunas em ordem crescente de valores.
Bruno Murad

Bruno Murad

Responder

Post mais votado

27/09/2021

Boa Noite, bem são sempre cinco colunas estas tabelas?
Se sim, vou te dar uma ideia, pela lógica, a melhor coisa a fazer e colocar uma relação de id e coluna única, com isto junte todas as tabelas.
Exemplo criar uma visualização

CREATE VIEW vwTabela (id, coluna) AS
SELECT id, valor_1 FROM <tabela> UNION SELECT id, valor_2 FROM <tabela> ....UNION SELECT id, valor_5 FROM <tabela>

Depois pegue essa visualização e ordene por valor.

OBS: caso tenha um "peso" por coluna, acrescente na visualização a identificação deste a referida da tabela e coluna.

Atc

Jair N.

Jair N.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar