Patrocinado por
Patrocinado por Inetum

SELECT de registo único com chave incompleta

images/thumbnail.png - Thumbnail

Durante anos explicaram-me que se deve usar UP TO 1 ROWS quando a chave não é completa. A minha professora primária disse que devemos sempre perguntar porquê: porquê? Ninguém explica.

Há uns dias fui tentar descobrir e encontrei uma explicação neste post do Horst Keller. Segundo o Horst este é o porquê: o SELECT SINGLE não permite usar ORDER BY que é importante visto que, por a chave estar incompleta, não se consegue determinar inequivocamente qual a linha a devolver. Por isso o ORDER BY é, diz ele, altamente recomendado.

Ok. Faz sentido e sempre fiz isso.

Mas, e quando sabemos que a ordem é totalmente indiferente? Provavelmente aí devemos à mesma usar o UP TO 1 ROWS em vez do SELECT SINGLE para não vir alguém a seguir dizer mal de nós.

Actualização: por coincidência, andam a discutir este assunto no Clean ABAP e há bastante discórdia.

O Abapinho saúda-vos.