Re: Getting the first row from a select
Date: 1998/10/02
Message-ID: <6v37ub$2e7$1_at_nnrp1.dejanews.com>#1/1
> >>> select * from COMPANY where COMPANY_NAME >= 'whatever' and ROWNUM = 1
order
> >>> by COMPANY_NAME;
This query (without the ROWNUM = ) will open a cursor and retrieve all of the rows in the result set. If you want only the first row of a sorted result set you have two possible solutions in Oracle.
- Easiest. Create an index on Company_Name. Issue the same query but without the ORDER BY. Oracle will use the index to find the result set and ROWNUM = 1 will return the one you want. I don't know if this is portable between databases.
- Most portable. DECLARE my_cursor CURSOR FOR SELECT * FROM Company WHERE company_name >= 'whatever' ORDER BY company_name;
OPEN CURSOR my_cursor FETCH my_cursor INTO variable_company_name . . .; CLOSE CURSOR;
BTW, SELECT * can get your code into trouble if you later add or remove columns from a table, or rebuild the table and the order of the columns changes. Always explicitely declare the columns in the SELECT list.
Hope this helps.
--
Don Holliday
-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/ Search, Read, Discuss, or Start Your Own
Received on Fri Oct 02 1998 - 00:00:00 CEST