使用运算符函数代替关系运算符

每一关系运算符都绑定特定的运算符函数,如表格所示。运算符函数接受两个值,并返回真、假或未知的布尔值。

关系运算符
相关联的运算符函数
<
lessthan( )
<=
lessthanorequal( )
>
greaterthan( )
>=
greaterthanorequal( )
= ==
equal( )
<> !=
notequal( )

以关系运算符连接两个表达式等同于对表达式调用运算符函数。例如,下两个语句都选择运费多于或等于 $18.00 的订单。

第一个语句中的 >= 运算符隐式地调用 greaterthanorequal( ) 运算符函数:
SELECT order_num FROM orders 
        WHERE ship_charge >= 18.00;
        
        SELECT order_num FROM orders
        WHERE greaterthanorequal(ship_charge, 18.00);

对于所有内建的数据类型,数据库服务器提供与关系运算符相关联的运算符函数。当您开发用户定义的数据类型时,您必须为那种数据类型定义运算符函数,以便用户能对该类型使用关系运算符。

如果您为用户定义的类型定义 lessthan( )greaterthan( ) 以及其他运算符函数,则您还应定义 compare( )。类似地,如果您定义 compare( ),则您还应定义 lessthan( )greaterthan( ) 和其他运算符函数。必须以一致的方式定义所有这些函数,以避免当在 SELECT 的 WHERE 子句中比较 UDT 值时产生不正确的查询结果的可能性。