× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Charles and Michael,

I see now that you are correct. (never should have doubted) my way
returned more than one record, and bombed (which could have been
corrected by a fetch 1, but who wants to do that?)

It's interesting that they'd put a dummy file with a dummy record out
in sysibm for that very reason.  Handy, but looks like a kludge to
overcome a weakness.

Thanks to both of you,

Rick

On 4/18/06, Michael_Schutte@xxxxxxxxxxxx <Michael_Schutte@xxxxxxxxxxxx> wrote:
> Rick I think between all the available answers I believe that Charles is
> right.
>
> Do this logic, pulled from another user.
>
> myInd = 'N';
>
> Select IBMREQD into :myInd from sysibm/sysdummy1 where exists (Select 1
> from myfile where thekey like '%abc%')
>
> If found in the subselect... myInd will have a 'Y', it's the only
> value/record in sysdummy1.
>
>
>
> Michael Schutte
> Work 614-492-7419
> email  michael_schutte@xxxxxxxxxxxx
>
>
>
>             "Wilt, Charles"
>             <CWilt@xxxxxxxxxx
>             om>                                                        To
>             Sent by:                  "RPG programming on the AS400 /
>             rpg400-l-bounces@         iSeries" <rpg400-l@xxxxxxxxxxxx>
>             midrange.com                                               cc
>
>                                                                   Subject
>             04/18/2006 01:02          RE: SQL to only check for
>             PM                        existence:
>
>
>             Please respond to
>              RPG programming
>              on the AS400 /
>                  iSeries
>             <rpg400-l@midrang
>                  e.com>
>
>
>
>
>
>
> Using EXISTS is the best why to do what you're asking for.
>
> EXISTS is specifically designed to answer the question you are asking
> and by using it the query engine knows exactly what you are looking for.
>
> You may get performance as good sometimes with Michael's method, but you
> will never get better and you could get worse.
>
> EXISTS is also part of the SQL standard.
>
> I do wish IBM would allow something like so:
>     c/exec SQL
>     c+ VALUES ( exists (select '1' from MYFILE where THEKEY =
> 'SOMEKEY'))
>     c+  into :myFlag :nullInd
>     c/end-exec
>
>     c                if    %nullInd
>                      // record does not exist
>     c                else
>                      // record exists
>     c                endif
>
>
> HTH,
>
> Charles Wilt
> --
> iSeries Systems Administrator / Developer
> Mitsubishi Electric Automotive America
> ph: 513-573-4343
> fax: 513-398-1121
>
>
> > -----Original Message-----
> > From: rpg400-l-bounces@xxxxxxxxxxxx
> > [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of rick baird
> > Sent: Tuesday, April 18, 2006 11:25 AM
> > To: RPG programming on the AS400 / iSeries
> > Subject: Re: SQL to only check for existence:
> >
> > Thanks Charles - very similar to Michael's answer, but with
> > another layer.
> >
> > If I get performance problems where the first match is way down in the
> > access path, I'll try this too.
> >
> > at this point, the select without the exists() looks like a winner.
> >
> > On 4/18/06, Wilt, Charles <CWilt@xxxxxxxxxxxx> wrote:
> > > Check out the EXISTS predicate.
> > >
> > > Select 1
> > > >From sysibm/sysdummy1
> > > Where exists (select 1 from my where myfield like '___abc___')
> > >
> > > HTH,
> > >
> > >
> > > Charles Wilt
> > > --
> > > iSeries Systems Administrator / Developer
> > > Mitsubishi Electric Automotive America
> > > ph: 513-573-4343
> > > fax: 513-398-1121
> > >
> > >
> > > > -----Original Message-----
> > > > From: rpg400-l-bounces@xxxxxxxxxxxx
> > > > [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of rick baird
> > > > Sent: Tuesday, April 18, 2006 10:56 AM
> > > > To: Midrange Systems Technical Discussion; RPG programming on
> > > > the AS400 / iSeries
> > > > Subject: SQL to only check for existence:
> > > >
> > > > hey all,
> > > >
> > > > Is there a way to run an SQL statement that doesn't (necessarily)
> > > > return anything, but only checks for the existence of one or more
> > > > records based on a where statement - similar to a SETLL
> > and %found?
> > > >
> > > > I've got a rather complicated SQL statement using:
> > > > LIKE '___abc___'    or it could be:
> > > > LIKE ______xyz'
> > > >
> > > > - over a very large file, and I'm having performance issues.
> > > >
> > > > I don't want to do a count(), because I don't care how
> > many, only that
> > > > at least one exists.   with count, it would have to read
> > through the
> > > > entire file to determine it.
> > > >
> > > > I also tried just doing a select - optimize for 1 row and a single
> > > > fetch, but that seemed to take forever too.  It appears
> > as if it is
> > > > searching the entire file, instead of stopping at the first one.
> > > >
> > > > help!
> > > >
> > > > Rick
> > > >
> > > > --
> > > > This is the RPG programming on the AS400 / iSeries (RPG400-L)
> > > > mailing list
> > > > To post a message email: RPG400-L@xxxxxxxxxxxx
> > > > To subscribe, unsubscribe, or change list options,
> > > > visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
> > > > or email: RPG400-L-request@xxxxxxxxxxxx
> > > > Before posting, please take a moment to review the archives
> > > > at http://archive.midrange.com/rpg400-l.
> > > >
> > > >
> > >
> > > --
> > > This is the RPG programming on the AS400 / iSeries
> > (RPG400-L) mailing list
> > > To post a message email: RPG400-L@xxxxxxxxxxxx
> > > To subscribe, unsubscribe, or change list options,
> > > visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
> > > or email: RPG400-L-request@xxxxxxxxxxxx
> > > Before posting, please take a moment to review the archives
> > > at http://archive.midrange.com/rpg400-l.
> > >
> > >
> >
> > --
> > This is the RPG programming on the AS400 / iSeries (RPG400-L)
> > mailing list
> > To post a message email: RPG400-L@xxxxxxxxxxxx
> > To subscribe, unsubscribe, or change list options,
> > visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
> > or email: RPG400-L-request@xxxxxxxxxxxx
> > Before posting, please take a moment to review the archives
> > at http://archive.midrange.com/rpg400-l.
> >
> >
>
> --
> This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
> To post a message email: RPG400-L@xxxxxxxxxxxx
> To subscribe, unsubscribe, or change list options,
> visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
> or email: RPG400-L-request@xxxxxxxxxxxx
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/rpg400-l.
>
>
>
> --
> This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
> To post a message email: RPG400-L@xxxxxxxxxxxx
> To subscribe, unsubscribe, or change list options,
> visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
> or email: RPG400-L-request@xxxxxxxxxxxx
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/rpg400-l.
>
>


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

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

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