Eu tentei no PostgreSQL, AlaSQL e alguns outros RDBMSs:
SELECT 1 AS one, 1 * 2 AS two; -- works
SELECT 1 AS one, one * 2 AS two; -- doesn't
Parece que eles não apoiam isso.
EDITAR:
Como @juergen d mencionou no comentário:
Você pode fazer isso no MySQL: https://stackoverflow.com/a/18020948/575376
O exemplo acima mostra a diferença entre os diferentes RDBMSs. É por isso que faço esta pergunta.
Se o ISO SQL não garantir tal comportamento, eu tentaria evitá-lo. Infelizmente, parece que algumas pessoas acham que esta é uma pergunta inútil (provavelmente é, mas é importante para mim porque QUERO ESCREVER O CÓDIGO MAIS PROTÁVEL POSSÍVEL ).
Então eu me pergunto se é um comportamento ISO SQL .
Agradeceríamos se fossem fornecidos links para materiais de referência específicos.
Não estou pedindo documentação que descreva funcionalidades que não existem. Caso alguém queira criticar, talvez eu deva reformular a pergunta: O ISO SQL especifica se SELECT
é executado como um todo ou pode ser executado em partes?
Tentar entender se uma determinada sintaxe SQL é compatível com ISO não é uma tarefa simples, para começar existem várias versões do padrão (a mais recente é 2023: https://www.iso.org/search.html?q= 9075 ) então com qual versão você está tentando ser compatível?
Os documentos ISO também não são gratuitos - o link acima mostra cerca de 16 seções, cada uma custando cerca de CHF200 - então obter o conjunto completo custaria uma quantia significativa de dinheiro e, mesmo assim, são documentos altamente técnicos, então as chances da maioria das pessoas que entende corretamente como um padrão seria implementado é baixo.
Por esse motivo, a menos que você esteja construindo um SGBD, a maioria das pessoas não se preocupa com a compatibilidade ISO. Apenas manter seu SQL simples e bem estruturado é sua melhor garantia de que ele é portátil - mesmo que seja compatível com ISO, você não tem garantia de que seu SGBD de destino seja compatível com (a versão que você escolheu) os padrões ISO - sendo assim Compatível com ISO não significa ser portátil