Esta questão me fez pensar: ROW_NUMBER() OVER (PARTITION BY B,A ORDER BY C) não usa índice em (A,B,C) Nela, o questionador afirma que duas funções fornecem o mesmo conjunto de resultados, mas não t porque eles têm linhas idênticas, mas estão sempre em ordens diferentes (e consistentes).
A ordem de um conjunto de resultados faz parte do conjunto de resultados? Wikipedia implica não (mas não determina fortemente uma resposta, nem fala de uma posição de autoridade):
https://en.wikipedia.org/wiki/Result_set
É
Sector Name
A Alpha
B Beta
o mesmo resultado definido como
Sector Name
B Beta
A Alpha
Eu pessoalmente só trabalho com SQL Server, a resposta muda por plataforma? A resposta é apenas uma questão de opinião? (Em caso afirmativo, dê respostas apenas de fato ou de consenso por órgãos profissionais de qualquer forma - não sua opinião pessoal, por favor)
Possivelmente a definição ANSI 92 mantida em
http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt
dá a resposta. A Seção 3.1 Definições parece traçar uma distinção entre a ideia de um conjunto de resultados e uma sequência de resultados. A distinção não estava em minha consciência quando escrevi a pergunta usando a frase anterior
Ansi sql não considera ordenar uma parte do conjunto de resultados - portanto, os 2 são idênticos. O conjunto de resultados é de fato um conjunto.
Aliás, os 'grandes jogadores' (oracle,Microsoft...) seguem o ansi sql bem de perto, se eles os consideram iguais, o mesmo acontece com o padrão... (Na maioria das coisas)
O termo "conjunto de resultados" [sic] não aparece no padrão SQL de 1992. É normalmente usado para significar o resultado de uma instrução select. Que é uma sequência parcialmente ordenada de linhas de uma tabela:
Do padrão SQL de 2003:
(Claramente, o resultado de uma instrução SELECT é ordenado porque é isso que seu ORDER BY faz.)
As tabelas estão desordenadas. Mas um conjunto de resultados [sic] não é uma tabela.