ibm-information-center/dist/eclipse/plugins/i5OS.ic.sqlp_5.4.0.1/rbafycomsrch.htm

142 lines
10 KiB
HTML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="security" content="public" />
<meta name="Robots" content="index,follow" />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
<meta name="DC.Type" content="reference" />
<meta name="DC.Title" content="Define complex search conditions" />
<meta name="abstract" content="In addition to the basic comparison predicates (=, &gt;, &lt;, and so on), a search condition can contain any of the predicates BETWEEN, IN, EXISTS, IS NULL, and LIKE." />
<meta name="description" content="In addition to the basic comparison predicates (=, &gt;, &lt;, and so on), a search condition can contain any of the predicates BETWEEN, IN, EXISTS, IS NULL, and LIKE." />
<meta name="DC.subject" content="SELECT statement, performing complex search condition, BETWEEN keyword, EXISTS keyword, IN keyword, IS NULL keyword, LIKE keyword" />
<meta name="keywords" content="SELECT statement, performing complex search condition, BETWEEN keyword, EXISTS keyword, IN keyword, IS NULL keyword, LIKE keyword" />
<meta name="DC.Relation" scheme="URI" content="rbafytexas.htm" />
<meta name="DC.Relation" scheme="URI" content="rbafyspeciallike.htm" />
<meta name="DC.Relation" scheme="URI" content="rbafymultiplewhere.htm" />
<meta name="DC.Relation" scheme="URI" content="rbafywhere.htm" />
<meta name="DC.Relation" scheme="URI" content="rbafywhereexp.htm" />
<meta name="DC.Relation" scheme="URI" content="rbafysubquery.htm" />
<meta name="DC.Relation" scheme="URI" content="rbafyussisql.htm" />
<meta name="DC.Relation" scheme="URI" content="rbafymultiplewhere.htm" />
<meta name="DC.Relation" scheme="URI" content="rbafyspeciallike.htm" />
<meta name="DC.Relation" scheme="URI" content="../db2/rbafzmstch2pred.htm" />
<meta name="copyright" content="(C) Copyright IBM Corporation 1998, 2006" />
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 1998, 2006" />
<meta name="DC.Format" content="XHTML" />
<meta name="DC.Identifier" content="rbafycomsrch" />
<meta name="DC.Language" content="en-us" />
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
<link rel="stylesheet" type="text/css" href="./ic.css" />
<title>Define complex search conditions</title>
</head>
<body id="rbafycomsrch"><a name="rbafycomsrch"><!-- --></a>
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<h1 class="topictitle1">Define complex search conditions</h1>
<div><p>In addition to the basic comparison predicates (=, &gt;, &lt;,
and so on), a search condition can contain any of the predicates BETWEEN,
IN, EXISTS, IS NULL, and LIKE. </p>
<div class="section"><p>A search condition can include a scalar fullselect. </p>
</div>
<div class="section"><p>For character, or UCS-2 or UTF-16 graphic column predicates, the
sort sequence is applied to the operands before evaluation of the predicates
for BETWEEN, IN, EXISTS, and LIKE clauses. </p>
</div>
<div class="section"><p>You can also perform multiple search conditions.</p>
<ul><li><strong>BETWEEN ... AND ...</strong> is used to specify a search condition that
is satisfied by any value that falls on or between two other values. For example,
to find all employees who were hired in 1987, you can use this: <pre><strong> WHERE</strong> HIREDATE <strong>BETWEEN</strong> '1987-01-01' <strong>AND</strong> '1987-12-31'</pre>
<p>The BETWEEN keyword is inclusive. A more complex, but explicit, search
condition that produces the same result is: </p>
<pre><strong>WHERE</strong> HIREDATE &gt;= '1987-01-01' <strong>AND</strong> HIREDATE &lt;= '1987-12-31'</pre>
</li>
<li><strong>IN</strong> says you are interested in rows in which the value of the specified
expression is among the values you listed. For example, to find the names
of all employees in departments A00, C01, and E21, you can specify: <pre><strong>WHERE</strong> WORKDEPT <strong>IN</strong> ('A00', 'C01', 'E21')</pre>
</li>
<li><strong>EXISTS</strong> says you are interested in testing for the existence of
certain rows. For example, to find out if there are any employees that have
a salary greater than 60000, you can specify: <pre><strong>EXISTS (SELECT * FROM</strong> EMPLOYEE <strong>WHERE</strong> SALARY &gt; 60000)</pre>
</li>
<li><strong>IS NULL</strong> says that you are interested in testing for null values.
For example, to find out if there are any employees without a phone listing,
you can specify: <pre><strong>WHERE</strong> EMPLOYEE.PHONE <strong>IS NULL</strong></pre>
</li>
<li><strong>LIKE</strong> says you are interested in rows in which an expression is
similar to the value you supply. When you use LIKE, SQL searches for a character
string similar to the one you specify. The degree of similarity is determined
by two special characters used in the string that you include in the search
condition: <dl><dt class="dlterm">_</dt>
<dd>An underline character stands for any single character.</dd>
<dt class="dlterm">%</dt>
<dd>A percent sign stands for an unknown string of 0 or more characters. If
the percent sign starts the search string, then SQL allows 0 or more character(s)
to precede the matching value in the column. Otherwise, the search string
must begin in the first position of the column.</dd>
</dl>
<div class="note"><span class="notetitle">Note:</span> If you are operating on MIXED data, the following distinction
applies: an SBCS underline character refers to one SBCS character. No such
restriction applies to the percent sign; that is, a percent sign refers to
any number of SBCS or DBCS characters. See <a href="../db2/rbafzmst02.htm">SQL Reference</a> in the <span class="keyword">iSeries™ Information Center</span> for
more information about the LIKE predicate and MIXED data.</div>
<p>Use the
underline character or percent sign either when you do not know or do not
care about all the characters of the column's value. For example, to find
out which employees live in Minneapolis, you can specify: </p>
<pre><strong>WHERE</strong> ADDRESS <strong>LIKE</strong> '%MINNEAPOLIS%'</pre>
<p>SQL
returns any row with the string MINNEAPOLIS in the ADDRESS column, no matter
where the string occurs.</p>
<p>In another example, to list the towns whose
names begin with 'SAN', you can specify: </p>
<pre><strong>WHERE</strong> TOWN <strong>LIKE</strong> 'SAN%'</pre>
<p>If
you want to find any addresses where the street name isn't in your master
street name list, you can use an expression in the LIKE expression. In this
example, the STREET column in the table is assumed to be upper case. </p>
<pre><strong>WHERE UCASE</strong> (:address_variable) <strong>NOT LIKE</strong> '%'||STREET||'%'</pre>
<p>If you want to search for a character string that contains either the
underscore or percent character, use the ESCAPE clause to specify an escape
character. For example, to see all businesses that have a percent in their
name, you can specify:</p>
<pre><strong>WHERE</strong> BUSINESS_NAME <strong>LIKE</strong> '%@%%' ESCAPE '@'</pre>
The
first and last percent characters in the LIKE string are interpreted as the
normal LIKE percent characters. The combination '@%' is taken
as the actual percent character.</li>
</ul>
</div>
</div>
<div>
<ul class="ullinks">
<li class="ulchildlink"><strong><a href="rbafyspeciallike.htm">Special considerations for LIKE</a></strong><br />
Here are some special considerations for using LIKE.</li>
<li class="ulchildlink"><strong><a href="rbafymultiplewhere.htm">Multiple search conditions within a WHERE clause</a></strong><br />
You can qualify your request further by coding a search condition that includes several predicates.</li>
</ul>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="rbafytexas.htm" title="Learn a variety of ways of tailoring your query to gather data using the SELECT statement. One way to do this is to use the SELECT statement in a program to retrieve a specific row (for example, the row for an employee). Furthermore, you can use clauses to gather data in a specific way.">Retrieve data using the SELECT statement</a></div>
</div>
<div class="relconcepts"><strong>Related concepts</strong><br />
<div><a href="rbafysubquery.htm" title="You can use subqueries in a search condition as another way to select your data. Subqueries can be used anywhere an expression can be used.">Use subqueries</a></div>
<div><a href="rbafyussisql.htm" title="A sort sequence defines how characters in a character set relate to each other when they are compared or ordered. Normalization allows you to compare strings that contain combining characters.">Sort sequences and normalization in SQL</a></div>
</div>
<div class="relref"><strong>Related reference</strong><br />
<div><a href="rbafywhere.htm" title="The WHERE clause specifies a search condition that identifies the row or rows you want to retrieve, update, or delete.">Specify a search condition using the WHERE clause</a></div>
<div><a href="rbafywhereexp.htm" title="An expression in a WHERE clause names or specifies something you want to compare to something else.">Expressions in the WHERE clause</a></div>
<div><a href="rbafymultiplewhere.htm" title="You can qualify your request further by coding a search condition that includes several predicates.">Multiple search conditions within a WHERE clause</a></div>
<div><a href="rbafyspeciallike.htm" title="Here are some special considerations for using LIKE.">Special considerations for LIKE</a></div>
</div>
<div class="relinfo"><strong>Related information</strong><br />
<div><a href="../db2/rbafzmstch2pred.htm">Predicates</a></div>
</div>
</div>
</body>
</html>