Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Re: a select query problem

Re: a select query problem

From: cf <news_at_tolede.com>
Date: Thu, 29 Apr 2004 09:18:38 +0200
Message-ID: <4090ac4d$0$19646$4d4eb98e@read.news.fr.uu.net>


select event_id,
 seq_no ,
 decode(sign(11 - seq_no ),-1,0,12 - seq_no )   from Events

Christophe.

"Ralf Fernan" <ralphfernan.N0SPAM_at_yahoo.com> a écrit dans le message de news:zMXjc.61156$um3.1172549_at_bgtnsc04-news.ops.worldnet.att.net...
> Select query problem:
> A simple table 'Events' has two columns, event id and sequence number. I
> wish to select that row which has the minimum non-negative value of (x -
> seq_no), where x is some user-defined value. (Less precisely, I want to
> select the event with the sequence that is closest to x.) I used an inner
> join to get the row, but was wondering if there is a more straightforward
> solution.
>
> Thanks!
>
> *****************************************************************
>
> Events
> ----------------------
> event_id VARCHAR2(3)
> seq_no NUMBER
> ----------------------
>
> Example:
> event_id seq_no (12 - seq_no)
> --------------------------------------
> A 11 1
> B 9 3
> C 15 -3
> D 13 -1
>
> suppose x = 12, then I expect the query to return event_id A (since 12-11
=
> 1, and 1 >= 0).
>
> I solved this using an inner join:
>
> SELECT t1.event_id, t1.seq_no FROM Events t1
>
> WHERE (12-t1.seq_no) =
>
> (SELECT min(12-t2.seq_no) FROM Events t2
> WHERE (12-t2.seq_no) >= 0);
>
>
Received on Thu Apr 29 2004 - 02:18:38 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US