Considere o seguinte, no PostgreSQL:
drop table test ;
create table test (result1 text, red smallint, green smallint, blue smallint, results2 text) ;
insert into test values ('red',1,2,3) ;
Gostaria results2
de conter o valor blue
, indicando que o valor máximo para as colunas inteiras ocorre em coluna blue
. Isso pode ser obtido executando um UPDATE
ou uma função posteriormente.
Como insiro o nome da coluna como um valor? Por exemplo, a linha acima seria atualizada para conter:
'red', 1, 2, 3, 'blue'
Não haverá NULL
valores para as colunas inteiras e um dos inteiros sempre será o maior.
(Veja também aqui .)
Você pode criar uma visão que se pareça com algo assim:
Observe que o acima não funcionará corretamente se qualquer uma das colunas contiver um
null
valor porquegreatest()
retornaránull
. Se você precisa lidar com isso, você precisa usar, por exemplo:Quando duas colunas têm o mesmo valor mais alto, isso exibirá o "primeiro". Então para
(2,2,4,4)
isso voltariac