User Group Italiano SQL Server SQL Sever “Denali” Novità della clausola ORDER BY Speaker: Francesco Milano Email: [email protected] Attribution-NonCommercial-ShareAlike 2.5 http://creativecommons.org/licenses/by-nc-sa/2.5/ Speaker Francesco Milano • Consulente freelance in ambito .NET e SQL Server • Membro UGISS – http://community.ugiss.org/blogs/fmilano/default.aspx UGISS - User Group Italiano SQL Server 2 Agenda • Introduzione a OFFSET e FETCH – Versione SQL Server e database utilizzato – Sintassi – Come si usano • Esempio di paging • OFFSET/FETCH vs TOP UGISS - User Group Italiano SQL Server 3 Introduzione a OFFSET e FETCH Versione SQL Server e database utilizzato • SQL Server “Denali” CTP3 – https://www.microsoft.com/betaexperience/pd/SQLDCTP3CTA/enus/ • Database AdventureWorks2008R2 – http://msftdbprodsamples.codeplex.com/releases/view/55330 UGISS - User Group Italiano SQL Server 4 Introduzione a OFFSET e FETCH Sintassi • http://msdn.microsoft.com/en-us/library/ms188385(v=sql.110).aspx ORDER BY order_by_expression [ COLLATE collation_name ] [ ASC | DESC ] [ ,...n ] [ <offset_fetch> ] <offset_fetch> ::= { OFFSET { integer_constant | offset_row_count_expression } { ROW | ROWS } [ FETCH { FIRST | NEXT } {integer_constant | fetch_row_count_expression } { ROW | ROWS } ONLY ] } UGISS - User Group Italiano SQL Server 5 Introduzione a OFFSET e FETCH Come si usano SELECT at.AddressTypeID AS ID, at.Name FROM Person.AddressType AS at ORDER BY at.Name; ID Name 6 Archive 1 Billing 2 Home 3 Main Office 4 5 SELECT at.AddressTypeID AS ID, at.Name FROM Person.AddressType AS at ORDER BY at.Name OFFSET 2 ROWS FETCH FIRST 3 ROWS ONLY; ID Name 6 Archive 1 Billing 2 Home 3 Main Office Primary 4 Primary Shipping 5 Shipping UGISS - User Group Italiano SQL Server OFFSET FETCH 6 Esempio di paging • SQL Server 2008 • Denali UGISS - User Group Italiano SQL Server 7 OFFSET/FETCH vs TOP • TOP: controindicazioni – – – – Sintassi può essere fuorviante Non richiede necessariamente la clausola ORDER BY Non permette di "saltare" dei record Non è standard Si consiglia di utilizzare OFFSET/FETCH al posto di TOP! UGISS - User Group Italiano SQL Server 8 Novità della clausola ORDER BY Risorse Generiche • Presentazione e demo – • Informazioni sul prodotto SQL Server – – • microsoft.public.it.sql microsoft.public.sqlserver.* Newsgroups pubblici via WEB – – • http://www.ugiss.org Newsgroups pubblici via NTTP – – • http://www.microsoft.com/technet/prodtechnol/sql http://msdn.microsoft.com/sql Comunità SQL Server – • http://www.microsoft.com/italy/sql http://www.microsoft.com/sql Supporto sviluppo ed professionisti IT – – • http://www.ugiss.org http://www.microsoft.com/italy/communities/newsgroups/default.mspx http://www.microsoft.com/technet/community/newsgroups/server/sql.mspx Formazione – http://www.microsoft.com/italy/traincert UGISS - User Group Italiano SQL Server 9