WHERE 子句为 GBase 8s 扩展连接指定连接条件,为符合 ANSI 的连接指定后连接过滤器,和对
数据指定搜索条件;
在 WHERE 子句中使用条件
在 WHERE 子句中,您可使用这些简单的条件或比较:
关系运算符条件
IN 或 BETWEEN . . . AND
IS NULL 或 IS NOT NULL
LIKE 或 MATCHES
您还可在 WHERE 子句中使用 SELECT 语句;这称为子查询。在子查询中,下列 WHERE 子句
运算符是有效的:
IN 或 EXISTS
ALL、ANY 或 SOME
要获取更多信息,请参阅 条件。
在 WHERE 子句中,聚集函数不是有效的,除非它是子查询的一部分,或是来源自父查询的相关
的列上,且 WHERE 子句在 HAVING 子句之内的子查询中。
关系运算符条件
如果关系运算符的每一边的表达式满足该表达式指定的关系,则关系运算符条件是满足的。下列语
句使用大于(
)和等于(
=)关系运算符:
SELECT order_num FROM orders
WHERE order_date > ‘6/04/08’;
SELECT fname, lname, company
FROM customer
WHERE city[1,3] = ‘San’;
‘San’ 需要加上单引号,因为该子字符串来自字符列。请参阅 关系运算符条件。
WHERE 子句中的空格字符串和空字符串
对于 LVARCHAR、NVARCHAR 或 VARCHAR 列,指定列值等于空字符串的带有 WHERE 子
句的查询(
WHERE varlength_col = ‘’
)返回的结果集,与其中的 WHERE 子句指定等于空格(ASCII 32)字符的字符串的同一查询是
一样的
例如,如果 varlength_col 是类型 VARCHAR、NVARCHAR 或 LVARCHAR,则下列
WHERE 子句示例在功能上完全等同于指定等于空字符串的 WHERE 子句:
WHERE varlength_col = ’ ’
WHERE varlength_col = ’ ’
WHERE varlength_col = ’ ’
因此,对于内建的可变长度字符数据类型,在空字符串与全由一个或多个空白字符组成的字符串之
间,没有区别。(然而,请注意,查询过滤器
WHERE varlength_col IS NULL
不等同于先前的 WHERE 子句示例,且如果 varlength_col 值为 NULL,则返回一个不同的
结果集