323 lines
23 KiB
HTML
323 lines
23 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 xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-us">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<meta name="dc.language" scheme="rfc1766" 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. -->
|
|
<meta name="dc.date" scheme="iso8601" content="2005-09-19" />
|
|
<meta name="copyright" content="(C) Copyright IBM Corporation 1998, 2006" />
|
|
<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="keywords" content="qualified, name, column, name qualification,
|
|
COMMENT statement, qualification of column names, qualifying a column name,
|
|
correlation name, synonym for qualifying a column name, defining, object table,
|
|
designator, table, ambiguous reference, undefined reference, description,
|
|
subquery, correlated reference, lateral correlation" />
|
|
<title>Column names</title>
|
|
<link rel="stylesheet" type="text/css" href="ibmidwb.css" />
|
|
<link rel="stylesheet" type="text/css" href="ic.css" />
|
|
</head>
|
|
<body>
|
|
<a id="Top_Of_Page" name="Top_Of_Page"></a><!-- Java sync-link -->
|
|
<script language = "Javascript" src = "../rzahg/synch.js" type="text/javascript"></script>
|
|
|
|
|
|
<a name="ch2col"></a>
|
|
<h2 id="ch2col"><a href="rbafzmst02.htm#ToC_227">Column names</a></h2><a id="idx576" name="idx576"></a>
|
|
<p>The meaning of a column name depends on its context. A column name can
|
|
be used to: </p>
|
|
<ul>
|
|
<li>Declare the name of a column, as in a CREATE TABLE statement.</li>
|
|
<li>Identify a column, as in a CREATE INDEX statement.</li>
|
|
<li>Specify values of the column, as in the following contexts:
|
|
<ul>
|
|
<li>In a <span class="italic">aggregate function</span> a column name
|
|
specifies all values of the column in the group or intermediate result table
|
|
to which the function is applied. Groups and intermediate result tables are
|
|
explained under <a href="rbafzmstsubsel.htm#subsel">Queries</a>. For example, MAX(SALARY) applies the
|
|
function MAX to all values of the column SALARY in a group.</li>
|
|
<li>In a <span class="italic">GROUP BY or ORDER BY clause,</span> a column name
|
|
specifies all values in the intermediate result table to which the clause
|
|
is applied. For example, ORDER BY DEPT orders an intermediate result table
|
|
by the values of the column DEPT.</li>
|
|
<li>In an <span class="italic">expression,</span> a <span class="italic">search
|
|
condition,</span> or a <span class="italic">scalar function,</span> a column name
|
|
specifies a value for each row or group to which the construct is applied.
|
|
For example, when the search condition CODE = 20 is applied to some row, the
|
|
value specified by the column name CODE is the value of the column CODE in
|
|
that row.</li></ul></li>
|
|
<li>Provide a column name for an expression to temporarily rename
|
|
a column, as in the <var class="pv">correlation-clause</var> of a <var class="pv">table-reference</var> in
|
|
a FROM clause, or in the AS clause in the <var class="pv">select-clause</var>.</li></ul>
|
|
<a name="cnqua"></a>
|
|
<h3 id="cnqua"><a href="rbafzmst02.htm#ToC_228">Qualified column names</a></h3><a id="idx577" name="idx577"></a>
|
|
<p>A qualifier for a column name can be a table name, a view name, an alias
|
|
name, or a correlation name.</p>
|
|
<p>Whether a column name can be qualified depends on its context: </p>
|
|
<ul>
|
|
<li>In the COMMENT and LABEL statements, the column name must be qualified.</li>
|
|
<li>Where the column name specifies values of the column, a column name can
|
|
be qualified.</li>
|
|
<li>In the <var class="pv">assignment-clause</var> of an UPDATE statement, it may be qualified.</li>
|
|
<li>In the <var class="pv">column-list</var> of an INSERT statement, it may be qualified.</li>
|
|
<li>In all other contexts, a column name must not be qualified.</li></ul>
|
|
<p>Where a qualifier is optional it can serve two purposes. See <a href="rbafzmstch2col.htm#qcn1">Column name qualifiers to avoid ambiguity</a> and <a href="rbafzmstch2col.htm#c2corr">Column name qualifiers in correlated references</a> for details.</p>
|
|
<a name="c2cornm"></a>
|
|
<h3 id="c2cornm"><a href="rbafzmst02.htm#ToC_229">Correlation names</a></h3><a id="idx578" name="idx578"></a><a id="idx579" name="idx579"></a><a id="idx580" name="idx580"></a><a id="idx581" name="idx581"></a>
|
|
<p>A <span class="italic">correlation name</span> can be defined in the FROM clause
|
|
of a query and after the target <var class="pv">table-name</var> or <var class="pv">view-name</var> in
|
|
an UPDATE or DELETE statement. For example, the clause shown below establishes
|
|
Z as a correlation name for X.MYTABLE: </p>
|
|
<pre class="xmp"> <span class="bold">FROM</span> X.MYTABLE Z</pre>
|
|
<p>A correlation name is associated with a table or view only within the context
|
|
in which it is defined. Hence, the same correlation name can be defined for
|
|
different purposes in different statements, or in different clauses of the
|
|
same statement.</p>
|
|
<p>As a qualifier, a correlation name can be used to avoid ambiguity or to
|
|
establish a correlated reference. A correlation name can also be used as a
|
|
shorter name for a table or view. In the example that is shown above, Z might
|
|
have been used merely to avoid having to enter X.MYTABLE more than once.</p>
|
|
<p>If a correlation name is specified for a table or view, any qualified reference
|
|
to a column of that instance of the table or view must use the correlation
|
|
name, rather than the table name or view name. For example, the reference
|
|
to EMPLOYEE.PROJECT in the following example is incorrect, because a correlation
|
|
name has been specified for EMPLOYEE: </p>
|
|
<pre class="xmp"> <span class="bold">FROM</span> EMPLOYEE E ***INCORRECT***
|
|
<span class="bold">WHERE</span> EMPLOYEE.PROJECT='ABC'
|
|
</pre>
|
|
<p>The qualified reference to PROJECT should instead use the correlation name, "E",
|
|
as shown below: </p>
|
|
<pre class="xmp"> <span class="bold">FROM</span> EMPLOYEE E
|
|
<span class="bold">WHERE</span> E.PROJECT='ABC'</pre>
|
|
<p>Names specified in a FROM clause are either <span class="italic">exposed</span> or <span class="italic">non-exposed</span>. A correlation name is always
|
|
an exposed name. A table name or view name is said to be <span class="italic">exposed</span> in that FROM clause if a correlation name is not specified. For
|
|
example, in the following FROM clause, a correlation name is specified for
|
|
EMPLOYEE but not for DEPARTMENT, so DEPARTMENT is an exposed name, and EMPLOYEE
|
|
is not: </p>
|
|
<pre class="xmp"> <span class="bold">FROM</span> EMPLOYEE E, DEPARTMENT</pre>
|
|
<p>A table name or view name that is exposed in a FROM clause must not be
|
|
the same as any other table name or view name exposed in that FROM clause
|
|
or any correlation name in the FROM clause. The names are compared after qualifying
|
|
any unqualified table or view names.</p>
|
|
<p>The first two FROM clauses shown below are correct, because each one contains
|
|
no more than one reference to EMPLOYEE that is exposed: </p>
|
|
<ol type="1">
|
|
<li>Given the FROM clause:
|
|
<pre class="xmp"> <span class="bold">FROM</span> EMPLOYEE E1, EMPLOYEE</pre> a qualified reference such as EMPLOYEE.PROJECT denotes a column of
|
|
the second instance of EMPLOYEE in the FROM clause. A qualified reference
|
|
to the first instance of EMPLOYEE must use the correlation name "E1"
|
|
(E1.PROJECT).</li>
|
|
<li>Given the FROM clause:
|
|
<pre class="xmp"> <span class="bold">FROM</span> EMPLOYEE, EMPLOYEE E2</pre> a qualified reference such as EMPLOYEE.PROJECT denotes a column of
|
|
the first instance of EMPLOYEE in the FROM clause. A qualified reference to
|
|
the second instance of EMPLOYEE must use the correlation name "E2"
|
|
(E2.PROJECT).</li>
|
|
<li>Given the FROM clause:
|
|
<pre class="xmp"> <span class="bold">FROM</span> EMPLOYEE, EMPLOYEE ***INCORRECT***
|
|
</pre> the two exposed table names included in this clause (EMPLOYEE and
|
|
EMPLOYEE) are the same, and this is not allowed.</li>
|
|
<li>Given the following statement:
|
|
<pre class="xmp"> <span class="bold">SELECT</span> *
|
|
<span class="bold">FROM</span> EMPLOYEE E1, EMPLOYEE E2 ***INCORRECT***
|
|
<span class="bold">WHERE</span> EMPLOYEE.PROJECT='ABC'</pre>the qualified
|
|
reference EMPLOYEE.PROJECT is incorrect, because both instances of EMPLOYEE
|
|
in the FROM clause have correlation names. Instead, references to PROJECT
|
|
must be qualified with either correlation name (E1.PROJECT or E2.PROJECT).</li>
|
|
<li>Given the FROM clause:
|
|
<pre class="xmp"> <span class="bold">FROM</span> EMPLOYEE, X.EMPLOYEE</pre> a reference to a column in the second instance of EMPLOYEE must use
|
|
X.EMPLOYEE (X.EMPLOYEE.PROJECT). This FROM clause is only valid if the authorization
|
|
ID of the statement is not X.</li></ol>
|
|
<p>A correlation name specified in a FROM clause must not be the same as: </p>
|
|
<ul>
|
|
<li>Any other correlation name in that FROM clause</li>
|
|
<li>Any unqualified table name or view name exposed in the FROM clause</li>
|
|
<li>The second SQL identifier of any qualified table name or view name that
|
|
is exposed in the FROM clause.</li></ul>
|
|
<p>For example, the following FROM clauses are incorrect: </p>
|
|
<pre class="xmp"> <span class="bold">FROM</span> EMPLOYEE E, EMPLOYEE E
|
|
<span class="bold">FROM</span> EMPLOYEE DEPARTMENT, DEPARTMENT ***INCORRECT***
|
|
<span class="bold">FROM</span> X.T1, EMPLOYEE T1</pre>
|
|
<p>The following FROM clause is technically correct, though potentially confusing: </p>
|
|
<pre class="xmp"> <span class="bold">FROM</span> EMPLOYEE DEPARTMENT, DEPARTMENT EMPLOYEE</pre>
|
|
<p>The use of a correlation name in the FROM clause also allows the option
|
|
of specifying a list of column names to be associated with the columns of
|
|
the result table. As with a correlation name, these listed column names become
|
|
the exposed names of the columns that must be used for references to the columns
|
|
throughout the query. If a column name list is specified, then the column
|
|
names of the underlying table become non-exposed.</p>
|
|
<p>Given the FROM clause:</p>
|
|
<pre class="xmp"> <span class="bold">FROM</span> DEPARTMENT D <span class="bold">(</span>NUM,NAME,MGR,ANUM,LOC<span class="bold">)</span>
|
|
</pre>
|
|
<p>a qualified reference such as D.NUM denotes the first column of the DEPARTMENT
|
|
table that is defined in the table as DEPTNO. A reference to D.DEPTNO using
|
|
this FROM clause is incorrect since the column name DEPTNO is a non-exposed
|
|
column name.</p>
|
|
<p>If a list of columns is specified, it must consist of as many names as
|
|
there are columns in the <span class="italic">table-reference</span>. Each column
|
|
name must be unique and unqualified.</p>
|
|
<a name="qcn1"></a>
|
|
<h3 id="qcn1"><a href="rbafzmst02.htm#ToC_230">Column name qualifiers to avoid ambiguity</a></h3>
|
|
<p>In the context of a function, a GROUP BY clause, an ORDER BY clause, an
|
|
expression, or a search condition, a column name refers to values of a column
|
|
in some target table or view in a DELETE or UPDATE statement or <var class="pv">table-reference</var> in a FROM clause. The tables, views, and <var class="pv">table-reference</var>s <sup class="fn"><a id="wq312" name="wq312" href="rbafzmstch2col.htm#wq313">31</a></sup> that might contain the
|
|
column are called the <span class="italic">object tables</span> of the context. <a id="idx582" name="idx582"></a>Two or more object tables might contain
|
|
columns with the same name. One reason for qualifying a column name is to
|
|
designate the object from which the column comes. For information on avoiding
|
|
ambiguity between SQL parameters and variables and column names, see <a href="rbafzmstrefsqlv.htm#refsqlv">References to SQL parameters and SQL variables</a>.</p><a id="idx583" name="idx583"></a>
|
|
<p>A nested table expression which is preceded by a LATERAL or
|
|
TABLE keyword will consider <var class="pv">table-reference</var>s that precede it in the
|
|
FROM clause as object tables. The <var class="pv">table-reference</var>s that follow the
|
|
nested table expression are not considered as object tables.</p>
|
|
<a name="tdjm"></a>
|
|
<h4 id="tdjm">Table designators</h4><a id="idx584" name="idx584"></a><a id="idx585" name="idx585"></a>
|
|
<p>A qualifier that designates a specific object table is called a <span class="italic">table designator</span>. The clause that identifies the object tables also establishes
|
|
the table designators for them. For example, the object tables of an expression
|
|
in a SELECT clause are named in the FROM clause that follows it: </p>
|
|
<pre class="xmp"> <span class="bold">SELECT</span> CORZ.COLA, OWNY.MYTABLE.COLA
|
|
<span class="bold">FROM</span> OWNX.MYTABLE CORZ, OWNY.MYTABLE</pre>
|
|
<p>Table designators in the FROM clause are established as follows:</p>
|
|
<ul>
|
|
<li>A name that follows a table or view name is both a correlation name and
|
|
a table designator. Thus, CORZ is a table designator. CORZ is used to qualify
|
|
the first column name in the select list.</li>
|
|
<li>In SQL naming, an exposed table or view name is a table designator. Thus,
|
|
OWNY.MYTABLE is a table designator. OWNY.MYTABLE is used to qualify the second
|
|
column name in the select list.</li>
|
|
<li>In system naming, the table designator for an exposed table or view name
|
|
is the unqualified table or view name. In the following example MYTABLE is
|
|
the table designator for OWNY/MYTABLE.
|
|
<pre class="xmp"> <span class="bold">SELECT</span> CORZ.COLA, MYTABLE.COLA
|
|
<span class="bold">FROM</span> OWNX/MYTABLE CORZ, OWNY/MYTABLE</pre></li></ul><p class="indatacontent">Two or more object tables can be instances of the same table. In this
|
|
case, distinct correlation names must be used to unambiguously designate the
|
|
particular instances of the table. In the following FROM clause, X and Y
|
|
are defined to refer, respectively, to the first and second instances of
|
|
the table EMPLOYEE: </p>
|
|
<pre class="xmp"> <span class="bold">SELECT * FROM</span> EMPLOYEE X,EMPLOYEE Y</pre>
|
|
<a name="wq314"></a>
|
|
<h4 id="wq314">Avoiding undefined or ambiguous references</h4><a id="idx586" name="idx586"></a><a id="idx587" name="idx587"></a>
|
|
<p>When a column name refers to values of a column, it must be possible to
|
|
resolve that column name to exactly one object table. The following situations
|
|
are considered errors: </p>
|
|
<ul>
|
|
<li>No object table contains a column with the specified name. The reference
|
|
is undefined.</li>
|
|
<li>The column name is qualified by a table designator, but the table designated
|
|
does not include a column with the specified name. Again the reference is
|
|
undefined.</li>
|
|
<li>The name is unqualified and more than one object table includes a column
|
|
with that name. The reference is ambiguous.</li>
|
|
<li>The column name is qualified by a table designator, but the table designated
|
|
is not unique in the FROM clause and both occurrences of the designated table
|
|
include the column. The reference is ambiguous.</li>
|
|
<li>The column name is in a nested table expression which is not
|
|
preceded by the LATERAL or TABLE keyword or a table function or nested table
|
|
expression that is the right operand of a right outer join or a right exception
|
|
join and the column name does not refer to a column of a <span class="italic">table-reference</span> within the nested table expression's fullselect. The
|
|
reference is undefined.</li></ul>
|
|
<p>Avoid ambiguous references by qualifying a column name with a uniquely
|
|
defined table designator. If the column is contained in several object tables
|
|
with different names, the object table names can be used as designators. Ambiguous
|
|
references can also be avoided without the use of the table designator by
|
|
giving unique names to the columns of one of the object tables using the column
|
|
name list following the correlation name.</p>
|
|
<p>When qualifying a column with the exposed table name form of a table designator,
|
|
either the qualified or unqualified form of the exposed table name may be
|
|
used. However, the qualifier used and the table used must be the same after
|
|
fully qualifying the table name or view name and the table designator. </p>
|
|
<ol type="1">
|
|
<li>If the authorization ID of the statement is CORPDATA, then:
|
|
<pre class="xmp"> <span class="bold">SELECT</span> CORPDATA.EMPLOYEE.WORKDEPT
|
|
<span class="bold">FROM</span> EMPLOYEE</pre> is a valid statement.</li>
|
|
<li>If the authorization ID of the statement is REGION, then:
|
|
<pre class="xmp"> <span class="bold">SELECT</span> CORPDATA.EMPLOYEE.WORKDEPT
|
|
<span class="bold">FROM</span> EMPLOYEE ***INCORRECT***</pre>is invalid, because EMPLOYEE represents the table REGION.EMPLOYEE, but
|
|
the qualifier for WORKDEPT represents a different table, CORPDATA.EMPLOYEE.</li>
|
|
<li>If the authorization ID of the statement is REGION, then:
|
|
<pre class="xmp"> <span class="bold">SELECT</span> EMPLOYEE.WORKDEPT
|
|
<span class="bold">FROM</span> CORPDATA.EMPLOYEE ***INCORRECT***</pre>is invalid, because EMPLOYEE in the select list represents the table
|
|
REGION.EMPLOYEE, but the explicitly qualified table name in the FROM clause
|
|
represents a different table, CORPDATA.EMPLOYEE. In this case, either omit
|
|
the table qualifier in the select list, or define a correlation name for the
|
|
table designator in the FROM clause and use that correlation name as the qualifier
|
|
for column names in the statement.</li></ol>
|
|
<a name="c2corr"></a>
|
|
<h3 id="c2corr"><a href="rbafzmst02.htm#ToC_233">Column name qualifiers in correlated references</a></h3><a id="idx588" name="idx588"></a><a id="idx589" name="idx589"></a><a id="idx590" name="idx590"></a>
|
|
<p>A <span class="italic">subselect</span> is a form of a query that can be used
|
|
as a component of various SQL statements. Refer to <a href="rbafzmstsubsel.htm#subsel">Queries</a> for
|
|
more information about subselects. A <span class="italic">subquery</span> is a
|
|
form of a fullselect that is enclosed within parentheses. For example, a <span class="italic">subquery</span> can be used in a search condition. A fullselect
|
|
used in the FROM clause of a query is called a <span class="italic">nested table
|
|
expression</span>.</p>
|
|
<p>A subquery can include search conditions of its own, and these search conditions
|
|
can, in turn, include subqueries. Therefore, an SQL statement can contain
|
|
a hierarchy of subqueries. Those elements of the hierarchy that contain subqueries
|
|
are said to be at a higher level than the subqueries they contain.</p>
|
|
<p>Every element of the hierarchy has a clause that establishes one or more
|
|
table designators. This is the FROM clause, except in the highest level of
|
|
an UPDATE or DELETE statement. A search condition, the select list, the join
|
|
clause, an argument of a table function in a subquery, or a <span class="italic">nested table expression</span> that is preceded by the LATERAL keyword can reference
|
|
not only columns of the tables identified by the FROM clause of its own element
|
|
of the hierarchy, but also columns of tables identified at any level along
|
|
the path from its own element to the highest level of the hierarchy. A reference
|
|
to a column of a table identified at a higher level is called a <span class="italic">correlated reference</span>. A reference to a column of a table identified at
|
|
the same level from a <span class="italic">nested table expression</span> through
|
|
the use of the LATERAL keyword is called <span class="italic">lateral correlation</span>.</p>
|
|
<p>A correlated reference to column C of table T can be of the form C, T.C,
|
|
or Q.C, if Q is a correlation name defined for T. However, a correlated reference
|
|
in the form of an unqualified column name is not good practice. The following
|
|
explanation is based on the assumption that a correlated reference is always
|
|
in the form of a qualified column name and that the qualifier is a correlation
|
|
name.</p>
|
|
<p>Q.C is a correlated reference only if these three conditions are met: </p>
|
|
<ul>
|
|
<li>Q.C is used in a search condition, select list, join clause, or an argument
|
|
of a table function in a subquery.</li>
|
|
<li>Q does not designate a table used in the FROM clause of that subquery,
|
|
select list, join clause, or an argument of a table function in a subquery.</li>
|
|
<li>Q does designate a table used at some higher level.</li></ul><p class="indatacontent"> Q.C refers to column C of the table or view at the level where Q is
|
|
used as the table designator of that table or view. Because the same table
|
|
or view can be identified at many levels, unique correlation names are recommended
|
|
as table designators. If Q is used to designate a table at more than one level,
|
|
Q.C refers to the lowest level that contains the subquery that includes Q.C.</p>
|
|
<p>In the following statement, Q is used as a correlation name for T1 and
|
|
T2, but Q.C refers to the correlation name associated with T2, because it
|
|
is the lowest level that contains the subquery that includes Q.C. </p>
|
|
<pre class="xmp"><span class="bold">SELECT</span> *
|
|
<span class="bold">FROM</span> T1 Q
|
|
<span class="bold">WHERE</span> A < <span class="bold">ALL (SELECT</span> B
|
|
<span class="bold">FROM</span> T2 Q
|
|
<span class="bold">WHERE</span> B < <span class="bold">ANY (SELECT</span> D
|
|
<span class="bold">FROM</span> T3
|
|
<span class="bold">WHERE</span> D = Q.C))
|
|
</pre>
|
|
<a name="wq316"></a>
|
|
<h3 id="wq316"><a href="rbafzmst02.htm#ToC_234">Unqualified column names in correlated references</a></h3>
|
|
<p>An unqualified column name can also be a correlated reference if the column: </p>
|
|
<ul>
|
|
<li>Is used in a search condition of a subquery</li>
|
|
<li>Is not contained in a table used in the FROM clause of that subquery</li>
|
|
<li>Is contained in a table used at some higher level</li></ul><p class="indatacontent"> Unqualified correlated references are not recommended because it makes
|
|
the SQL statement difficult to understand. The column will be implicitly qualified
|
|
when the statement is prepared depending on which table the column was found
|
|
in. Once this implicit qualification is determined it will not change until
|
|
the statement is re-prepared. When an SQL statement that has an unqualified
|
|
correlated reference is prepared or executed, a warning is returned (SQLSTATE
|
|
01545).</p>
|
|
<hr /><div class="fnnum"><a id="wq313" name="wq313" href="rbafzmstch2col.htm#wq312">31</a>.</div>
|
|
<div class="fntext">In the case of a <var class="pv">joined-table</var>, each <var class="pv">table-reference</var> within
|
|
the <var class="pv">joined-table</var> is an object table.</div>
|
|
<br />
|
|
<hr /><br />
|
|
[ <a href="#Top_Of_Page">Top of Page</a> | <a href="rbafzmstspecreg.htm">Previous Page</a> | <a href="rbafzmstch2refvar.htm">Next Page</a> | <a href="rbafzmst02.htm#wq1">Contents</a> |
|
|
<a href="rbafzmstindex.htm#index">Index</a> ]
|
|
|
|
<a id="Bot_Of_Page" name="Bot_Of_Page"></a>
|
|
</body>
|
|
</html>
|