If you know them at the time of running your query and you, for some 
reason, cannot get the data as it exists in the database into a 
normalized state from which you could discern the order, then just use a 
case statement. I had a requirement on a report that a user be able to 
enter a list of company names in the order they wanted the invoices 
displayed (not to get into too much detail on a very stupid 
requirement), but it was basically a requirement to do exactly this. 
There was no way to get an alpha or a numeric rank associated with the 
records for the sort. So I did it this way and it worked just fine. 
(pseudo-code below)

case when business_title = 'CEO' then 1
when business_title = 'CIO' then 2
when business_title = 'VP-Sales' then 3
when business_title = 'VP-Ops' then 4
when business_title = 'Mail Clerk' then 5
when business_title = 'Janitor' then 6
when business_title = 'Doorman' then 7
as rank_order

then you can order by rank_order asc or desc - whatever you need to 
accomplish.
--Ferg

Ken Ferguson wrote:
> Do you mean you'd like to sort on a column such as business_title in a 
> non-alpha sort?
>
> eg, CEO, CIO, VP-Sales, VP-Ops, Mail Clerk, Janitor, Doorman (in that 
> order even though a normal order by clause won't give you that?)
>
> Is that what you're saying and if it is, do you know the list and the 
> order in which you want them beforehand?
>
> --Ferg
>
> Michael Traher wrote:
>   
>> well a sort has to be based on some attribute of each record, either a
>> number you assign as in your example of seniority ( a number could be
>> assigned to job titles or maybe have a grade column) or as in your second
>> example of photos being added to a gallery it could be on an existing
>> column. For the photos what order do you want? could be chronological -
>> date_added column or by the title of the photo perhaps?
>>
>> unless I miss the point entirely (which is quite possible :-) you have to
>> decide the order and based it on one of the columns in the table.
>>
>> On 3/1/06, Andy Matthews <[EMAIL PROTECTED]> wrote:
>>   
>>     
>>> Asking this question for a friend...
>>> -----------------------------------
>>> I'm looking for a good way to pull entries from a database based on "rank"
>>> (an arbitrary sort order).
>>>
>>> For example: A business' staff directory listed by seniority or position
>>> (CEO at top) rather than default or alphabetical sort
>>> OR: rearranging the display order of photos in a gallery
>>> etc.
>>>
>>> I know I could add a field called 'sort' and assign a numerical value to
>>> that field. But redefining the order could require modifying that field on
>>> many records (especially in a photo gallery, where photos are being added
>>> and removed). And if you wanted to add one between '5' and '6' you would
>>> have to use something like '5.5' (then '5.7' to insert one between '5.5'
>>> and
>>> '6') which could also get ugly.
>>>
>>> There has to be a 'professional' simple solution to this, since it seems
>>> like a very commonplace requirement.
>>> -------------------------------
>>>
>>>     
>>>       
>> --
>> Mike T
>> Blog http://www.socialpoints.com/
>>
>>
>>
>>     
>
> 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Message: http://www.houseoffusion.com/lists.cfm/link=i:4:233772
Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4
Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4
Donations & Support: http://www.houseoffusion.com/tiny.cfm/54

Reply via email to