Nesse artigo vou mostrar 2 maneiras de como usar o número da linha como ID trazendo ele na consulta. Isso é util quando queremos por exemplo usar um DTO (ou VO) em uma consulta com JPA mas na consulta não tem campos que são sempre únicos para servir de ID para o DTO e o JPA precisa de um ID único.
A primeira usamos o ROW_NUMBER e a segunda criamos uma SEQUENCE. Em "MEU_SELECT_COM_JOINS" você substitui por toda sua consulta que carrega os dados que você precisa para o DTO e pronto.
---------------------------------------------------- row_number(): SQL2005+--------------------------------------------------select row_number() over (order by (select null)) id, tabela_.*
from (MEU_SELECT_COM_JOINS) as tabela_---------------------------------------------------- Sequence: SQL2012+---------------------------------------------------- Criando sequenciaif object_id('sLinhas') is not null drop sequence sLinhascreate sequence sLinhas as int start with 1select next value for sLinhas as id, tabela_.*
from (MEU_SELECT_COM_JOINS) as tabela_