Ordinamento di righe (Visual Database Tools)Sort Rows (Visual Database Tools)

È possibile ordinare le righe nel risultato di una query.You can order the rows in a query result. In altre parole, è possibile identificare una colonna o un set di colonne particolare i cui valori determinano l'ordine delle righe nel set di risultati.That is, you can name a particular column or set of columns whose values determine the order of rows in the result set.

Nota

Il criterio di ordinamento è determinato in parte dalla sequenza di confronto della colonna.The sort order is determined in part by the column's collation sequence. Per cambiare la sequenza di confronto, è possibile usare la finestra di dialogo Regole di confronto.You can change the collation sequence in the Collation Dialog Box.

I risultati delle query possono essere ordinati in diversi modi:There are several ways in which you can sort query results:

  • È possibile disporre le righe in ordine crescente o decrescente Per impostazione predefinita, in SQL vengono usate le colonne ORDER BY per disporre le righe in ordine crescente.You can arrange rows in ascending or descending order By default, SQL uses order-by columns to arrange rows in ascending order. Per disporre, ad esempio, i titoli dei libri in ordine crescente in base al prezzo, è sufficiente ordinare le righe in base alla colonna price.For example, to arrange the book titles by ascending price, simply sort the rows by the price column. Il codice SQL risultante potrebbe essere simile al seguente:The resulting SQL might look like this:

    SELECT *  
    FROM titles  
    ORDER BY price  
    

    Se invece si desidera disporre i titoli indicando per primi i libri più costosi, è possibile specificare in modo esplicito un ordinamento di questo tipo,On the other hand, if you want to arrange the titles with the more expensive books first, you can explicitly specify a highest-first ordering. ovvero indicare che le righe dei risultati devono essere disposte in ordine decrescente in base ai valori della colonna price.That is, you indicate that the result rows should be arranged by descending values of the price column. Il codice SQL risultante potrebbe essere simile al seguente:The resulting SQL might look like this:

    SELECT *  
    FROM titles  
    ORDER BY price DESC  
    
  • È possibile eseguire l'ordinamento in base a più colonne È possibile, ad esempio, creare un set di risultati con una riga per ogni autore, eseguendo l'ordinamento prima in base alla nazione e poi in base alla città.You can sort by multiple columns For example, you can create a result set with one row for each author, ordering first by state and then by city. Il codice SQL risultante potrebbe essere simile al seguente:The resulting SQL might look like this:

    SELECT *  
    FROM authors   
    ORDER BY state, city  
    
  • È possibile eseguire l'ordinamento in base a colonne non presenti nel set di risultati È possibile, ad esempio, creare un set di risultati con i libri più costosi indicati per primi anche se i prezzi non sono specificati.You can sort by columns not appearing in the result set For example, you can create a result set with the most expensive titles first, even though the prices do not appear. Il codice SQL risultante potrebbe essere simile al seguente:The resulting SQL might look like this:

    SELECT title_id, title  
    FROM titles  
    ORDER BY price DESC  
    
  • È possibile eseguire l'ordinamento in base a colonne derivate È possibile, ad esempio, creare un set di risultati in cui ogni riga contenga il titolo di un libro, indicando per primi i libri con i diritti d'autore più elevati per una singola copia.You can sort by derived columns For example, you can create a result set in which each row contains a book title — with the books that pay the highest royalty per copy appearing first. Il codice SQL risultante potrebbe essere simile al seguente:The resulting SQL might look like this:

    SELECT title, price * royalty / 100 as royalty_per_unit  
    FROM titles  
    ORDER BY royalty_per_unit DESC  
    

    In questo esempio è evidenziata la formula che consente di calcolare i diritti di autore corrisposti per ciascuna copia di un libro.(The formula for calculating the royalty that each book earns per copy is emphasized.)

    Per calcolare una colonna derivata, è possibile utilizzare la sintassi SQL, come è stato fatto nell'esempio precedente, oppure è possibile utilizzare una funzione definita dall'utente che restituisca un valore scalare.To calculate a derived column, you can use SQL syntax, as in the preceding example, or you can use a user-defined function that returns a scalar value. Per ulteriori informazioni sulle funzioni definite dall'utente, vedere la documentazione di SQL Server.For more information about user-defined functions, see the SQL Server documentation.

  • È possibile ordinare righe raggruppate È possibile ad esempio creare un set di risultati in cui ciascuna riga indichi una città e il numero di autori residenti in tale città, specificando per prime le città con più autori.You can sort grouped rows For example; you can create a result set in which each row describes a city, plus the number of authors in that city — with the cities containing many authors appearing first. Il codice SQL risultante potrebbe essere simile al seguente:The resulting SQL might look like this:

    SELECT city, state, COUNT(*)  
    FROM authors  
    GROUP BY city, state  
    ORDER BY COUNT(*) DESC, state  
    

    Si noti che la query utilizza state come colonna di ordinamento secondaria.Notice that the query uses state as a secondary sort column. Due stati che hanno lo stesso numero di autori verranno quindi disposti in ordine alfabetico.Thus, if two states have the same number of authors, those states will appear in alphabetical order.

  • È possibile eseguire l'ordinamento usando dati internazionali È possibile ordinare una colonna usando convenzioni di confronto diverse dalle convenzioni predefinite per tale colonna.You can sort using international data That is; you can sort a column using collating conventions that differ from the default conventions for that column. È possibile ad esempio scrivere una query che recuperi tutti i libri di Jaime Patiño.For example, you can write a query that retrieves all the book titles by Jaime Patiño. Per visualizzare i titoli in ordine alfabetico, si utilizza una sequenza di confronto spagnola per la colonna title.To display the titles in alphabetical order, you use a Spanish collating sequence for the title column. Il codice SQL risultante potrebbe essere simile al seguente:The resulting SQL might look like this:

    SELECT title  
    FROM   
        authors   
        INNER JOIN   
            titleauthor   
            ON authors.au_id   
            =  titleauthor.au_id   
            INNER JOIN  
                titles   
                ON titleauthor.title_id   
                =  titles.title_id   
    WHERE   
         au_fname = 'Jaime' AND   
         au_lname = 'Patiño'  
    ORDER BY   
         title COLLATE SQL_Spanish_Pref_CP1_CI_AS  
    

Vedere ancheSee Also

Ordinare e raggruppare i risultati delle query (Visual Database Tools)Sort and Group Query Results (Visual Database Tools)
Procedure per la progettazione di query e viste (Visual Database Tools)Design Queries and Views How-to Topics (Visual Database Tools)