Domanda

Questa domanda doveva solo essere in questo sito:)

ORDER BY è vietato l'uso in una vista, come ho capito a causa della possibilità di ordine multipla di quando si utilizza questa vista.

So che ci sono modi per aggirare questa limitazione, per esempio TOP 99.999999 PERCENT, ma mi piacerebbe sapere qual è la migliore pratica, non è come incidere.

Quindi, se voglio creare viste nel mio database per uso personale, nel senso che voglio per la connessione al database e basta vedere i dati fissi e ordinati, come devo fare se non riesco a ordinare una vista?

Al momento nel mio SQL Server DB ho opinioni con l'hack TOP, e sto usando un sacco di loro, ma ci si sente male.

È stato utile?

Soluzione

Non esiste una cosa come una visione "ordinata", perché la vista dovrebbe essere un insieme di righe. Utilizzare una stored procedure, se si desidera un ordinamento fisso.

Altri suggerimenti

Solo ORDER BY più esterno Garanzia dell'ordine volontà

  • Qualsiasi ORDER BY intermedio o interno viene ignorato.
    Questo include ORDER BY in una visualizzazione
  • Non esiste un ordine implicito in ogni tabella
  • Non c'è un ordine implicito da qualsiasi indice (cluster o meno) su quel tavolo

Link

ORDER BY garantisce un risultato ordinato solo per il più esterno istruzione SELECT di una query. Ad esempio, si consideri la seguente definizione di vista: (ed esempio seguito che corrisponde a questa domanda)

Aggiungere un ORDER BY per l'uscita del cioè vista.

  SELECT whatever FROM MYVIEW ORDER BY whatever
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top