Boa tarde. Não sei se vou conseguir expressar bem a minha duvida, mas tentarei..
Quando damos um select em tudo (select * from) de uma tabela, o resultado da query é ordenado em x. Quando damos um select num determinado campo (select nomedocampo from tabela) a query vem com uma ordenação diferente. Creio que seja porque quando especificamos o campo que queremos, internamente o sql faz um order by.
Dito isso, o que está acontecendo é o seguinte; eu to dando um select num campo especifico (select >embalagem< from tabela_de_produtos) e o resultado da query fica numa determinada ordem, por exemplo em primeiro PET, depois GARRAFA, depois LATA. (Só um exemplo). Mas o rownum não pega a primeira minha dessa minha query especifica. Por algum motivo ele só pega a primeira linha da query antes do order by interno.
Então se eu dou um select assim > SELECT * FROM TABELA_DE_PRODUTOS < a primeira linha da minha query vai ser a com embalagem LATA.
Se eu dou um select assim > SELECT embalagem FROM TABELA_DE_PRODUTOS < a primeira linha da query vai ser a com embalagem PET.
E se eu quiser pegar a primeria linha desse select (SELECT embalagem FROM TABELA_DE_PRODUTOS), que no exemplo é PET, eu teria que dar SELECT embalagem FROM TABELA_DE_PRODUTOS WHERE ROWNUM = 1. Mas o que acontece é que ele não me traz a primeira como sendo PET, de um select especifico. Mas sim a primeira linha sendo LATA, de um select generalizado.
Não sei se consegui me expressar, mas espero que possam entender.