|
This is a multipart message in MIME format. -- [ Picked text/plain from multipart/alternative ] Loyd, First of all let me clarify. In your example, when you did order by 1,2 you did mean order by column 1 and then by column2 correct? That is how it should work, and that is how it does. However, if you do order by :col and you wanted to change the value of col in order to change which column sorted you can't. For example, if the value of col was 1 it wouldn't sort by column 1. Instead it would sort by a hard '1'. In this case then you might as well substitute 'M' for col. They would both be meaningless. Or, was I missing something in your explanation? Rob Berendt -- "They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety." Benjamin Franklin Loyd Goodbar <loyd@blackrobes.net> Sent by: midrange-l-admin@midrange.com 11/21/2002 06:02 PM Please respond to midrange-l To: midrange-l@midrange.com cc: Fax to: Subject: Re: SQL: Inconsistent "order by" Here is a real-world example why I might use an ordinal number to order by than a column name. select xact_date as Transaction_Date, case when xact_code in ('MT23','MT25') then 'ISSUE' when xact_code in ('MT51') then 'RETURN' end as Transaction_Type, xact_qty as Transaction_Qty, stockno as Item_Number from msdb1/stxns where xact_code in ('MT23','MT25','MT51') order by 1,2 Otherwise, I would need to order by xact_date, /* this is ok */ case when xact_code in ('MT23','MT25') then 'ISSUE' when xact_code in ('MT51') then 'RETURN' end /* why do I need to type complex SQL more than once? */ Summarization and transformation of data fields are complex enough that you will want to order by ordinals. Otherwise, in the above example, I must remember to change both the select and the order by if I decide to modify the SQL statement. Admittedly, I almost always use the column names (or column aliases), but complex select statements sometimes demand ordinals. I'm not sure it's in the SQL92/SQL99 standard, but the major SQL servers I've used honor an ordinal number in the order by clause. (DB2, MS-SQL, MySQL, PostgreSQL) I'll have to respectfully disagree with the statement that "They said order by 2 was like saying order by 'M'. Valid, but totally meaningless." A Google search for "sql order ordinal number" brings plenty of results that this is normal and expected behavior. Loyd On Wed, 20 Nov 2002 16:14:53 -0500, rob@dekko.com wrote: >This is a multipart message in MIME format. >-- >[ Picked text/plain from multipart/alternative ] >IBM clarified this by saying that when you try to use a parameter marker >it tried to sort by the value of the marker, not the column number that it >represented. They said order by 2 was like saying order by 'M'. Valid, >but totally meaningless. Why anyone would want to sort by a hard value is >beyond me. -- "Why, you can even hear yourself think." --Hobbes "This is making me nervous. Let's go in." --Calvin loyd@blackrobes.net ICQ#504581 http://www.blackrobes.net/ _______________________________________________ This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list To post a message email: MIDRANGE-L@midrange.com To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/cgi-bin/listinfo/midrange-l or email: MIDRANGE-L-request@midrange.com Before posting, please take a moment to review the archives at http://archive.midrange.com/midrange-l.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.