I solved the problem.
The end of the CASE clause just needs an END, not END CASE.
By specifing end case, I was assigning the result to column name case.
I changed it to the column name I wanted and was able to use that in my Order By.

Thanks to all who responded.

Jeff Young
Sr. Programmer Analyst
IBM -e(logo) server Certified Systems Exper - iSeries Technical Solutions V5R2
IBM Certified Specialist- e(logo) server i5Series Technical Solutions Designer V5R3
IBM Certified Specialist- e(logo)server i5Series Technical Solutions Implementer V5R3









----- Original Message ----
From: Adam Glauser <adamglauser@xxxxxxxxxxxx>
To: midrange-l@xxxxxxxxxxxx
Sent: Thursday, March 13, 2008 12:17:41 PM
Subject: Re: SQL Question

Jeff Young wrote:
Given the following SQL Statement -
select substr(oncitm,5,10) cstitm, onitem,okpric price,
case when okpgrp = '40004' then '1'
when okpgrp = '40001' then '2' end case
from
vcoitem join vinitem

How can I specify the result of the CASE clause in the order by clause.
Also, how can I assign a name to the result of the CASE clause

As far as I know, you have to copy the whole case statement into the
ORDER BY clause, like so

select substr(oncitm,5,10) cstitm, onitem,okpric price,
case when okpgrp = '40004' then '1'
when okpgrp = '40001' then '2' end case
from
vcoitem join vinitem
order by case when okpgrp = '40004' then '1'

when okpgrp = '40001' then '2' end case

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2020 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].