基本谓词 (basic predicate)

基本谓词 将两个值进行比较,或者将一组值与另一组值进行比较。

Read syntax diagramSkip visual syntax diagramexpressioncomparison-operatorexpressionrow-value-expressioncomparison-operatorrow-value-expressionboolean-expression
comparison-operator
Read syntax diagramSkip visual syntax diagram =  <> 1 <  >  <= 1 >= 1
Notes:

这六个比较运算符可以有效地基于其中两个比较运算符来表示。 如果谓词操作数是 xy,那么可以使用以下备用谓词来表示其他四个比较运算符。

表 1. 谓词和备用谓词
谓词 备用谓词
x <> y 非 ( x = y )
x > y y < x
x <= y x < yx = y
x >= y y < xx = y

将谓词操作数指定为 表达式时,表达式的数据类型必须是可比较的。 如果任一操作数的值为空,那么谓词的结果未知。 否则,结果为 true 或 false。

表 2. 使用标量操作数进行谓词求值
谓词 (具有操作数值 xy) 布尔值 If 和 Only If ...
x = y 为 true x 等于 y
x < y 为 true x 小于 y
x = y 为 false x 不等于 y
x < y 为 false x = y 为 True 或 y < x 为 True

将谓词操作数指定为 row-value-expression时,它们必须具有相同数目的字段,并且操作数的相应字段的数据类型必须具有可比较性。 比较结果基于 row-value-expression 操作数中相应字段的比较。

表 3. 具有行操作数的谓词求值
Predicate (with operand values 接收 and that have fields 勒西 and 赖伊 where 0 < < 字段数) 布尔值 If 和 Only If ...
接收 = 接收 为 true 所有对应值表达式对都相等 (对于 的所有值,勒西 = 赖伊 为 True)。
接收 < 接收 为 true 对应值表达式的前 N 对相等,下一个对的左值表达式小于 N 的某个值的右值表达式 (对于 < N 的所有值,勒西 = 赖伊 为 True ,对于 N的某个值, Rxn < 为 True)。
接收 = 接收 为 false 至少一对对应的值表达式不相等 (对于 的某些值, NOT (勒西 = 赖伊) 为 True)。
接收 < 接收 为 false All pairs of corresponding value expressions are equal (接收 = is True) or the first N pairs of corresponding value expressions are equal and the next pair has the right value expression less than the left value expression for some value of N (勒西 = 赖伊 is True for all values of < N and < Rxn is True for some value of N).
接收 comparison operator 接收 未知 比较既不为 True 也不为 False。

布尔值

您可以使用基本谓词将布尔值与另一个布尔值或可转换为布尔值的数据类型值进行比较。 TRUE 值大于 FALSE 值。 例如:
  • TRUE = 'on' 为 true
  • DECFLOAT(4.3) = TRUE 为 true
  • '0' <= FALSE 为 true
  • 'yes' <= FALSE 为 false

备用表单

对于比较运算符 <>、<= 和 >=,也支持替代形式。 (¬=、¬< 和 ¬> 这三种形式仅在代码页 437、819 和 850 中支持。) 对这些备用表单的支持仅用于容纳现有 SQL 语句; 建议不要将这些表单用于新的 SQL 语句。

比较运算符 备用表单
<> ^= != ¬=
<= ^> !> ¬>
>= ^< !< ¬<

示例:

   EMPNO='528671'  
   SALARY < 20000 
   PRSTAFF <> :VAR1
   SALARY > (SELECT AVG(SALARY) FROM EMPLOYEE)
  (YEARVAL, MONTHVAL) >= (2009, 10)