SELECT de registo único com chave incompleta
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.