WHERE 子句 - AWS Clean Rooms

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

WHERE 子句

该WHERE子句包含连接表或将谓词应用于表中的列的条件。通过在子WHERE句或子句中使用适当的语法,可以对表进行内联接。FROM必须在FROM子句中指定外部联接条件。

语法

[ WHERE condition ]

condition

任何具有布尔型结果的搜索条件,例如,联接条件或表列上的谓词。以下示例是有效的联接条件:

sales.listid=listing.listid sales.listid<>listing.listid

以下示例是表中的列上的有效条件:

catgroup like 'S%' venueseats between 20000 and 50000 eventname in('Jersey Boys','Spamalot') year=2008 length(catdesc)>25 date_part(month, caldate)=6

条件可以是简单条件或复杂条件;对于复杂条件,可以使用圆括号来分隔逻辑单元。在下面的示例中,用圆括号将联接条件括起来。

where (category.catid=event.catid) and category.catid in(6,7,8)

使用说明

可以在WHERE子句中使用别名来引用选择列表表达式。

您不能在WHERE子句中限制聚合函数的结果;为此请使用HAVING子句。

WHERE子句中受限制的列必须源自子FROM句中的表引用。

示例

以下查询使用不同WHERE子句限制的组合,包括SALES和EVENT表的联接条件、列上的谓词和EVENTNAME列上的STARTTIME两个谓词。

select eventname, starttime, pricepaid/qtysold as costperticket, qtysold from sales, event where sales.eventid = event.eventid and eventname='Hannah Montana' and date_part(quarter, starttime) in(1,2) and date_part(year, starttime) = 2008 order by 3 desc, 4, 2, 1 limit 10; eventname | starttime | costperticket | qtysold ----------------+---------------------+-------------------+--------- Hannah Montana | 2008-06-07 14:00:00 | 1706.00000000 | 2 Hannah Montana | 2008-05-01 19:00:00 | 1658.00000000 | 2 Hannah Montana | 2008-06-07 14:00:00 | 1479.00000000 | 1 Hannah Montana | 2008-06-07 14:00:00 | 1479.00000000 | 3 Hannah Montana | 2008-06-07 14:00:00 | 1163.00000000 | 1 Hannah Montana | 2008-06-07 14:00:00 | 1163.00000000 | 2 Hannah Montana | 2008-06-07 14:00:00 | 1163.00000000 | 4 Hannah Montana | 2008-05-01 19:00:00 | 497.00000000 | 1 Hannah Montana | 2008-05-01 19:00:00 | 497.00000000 | 2 Hannah Montana | 2008-05-01 19:00:00 | 497.00000000 | 4 (10 rows)