比较运算符可用于字符、数字或日期数据,并可用在查询的 WHERE 或 HAVING 子句中。比较运算符计算结果为布尔数据类型,它们根据测试条件的输出结果返回 TRUE 或 FALSE。
例如,要计算在 1998 年 3 月 15 日或在此之前聘用员工的奖金,通过比较员工的 hire_date 是否小于或等于 1998 年 3 月 15 日 (March 15, 1998),可提供应该获得奖金的员工列表。
有效的比较运算符为:
比较运算符还可用于在程序逻辑中检测条件。例如,如果 country(国家)列为 UK(英国)而不是 Spain(西班牙),则应用不同的运费。在这种情况下,可使用比较运算符、表达式(列名)、文字 ('UK') 和流程控制编程关键字 (IF) 的组合来达到上述目的。
访问实际数据(查询)的任何人均可在附加查询中使用比较运算符。对于那些进行数据修改的语句,建议只在具有相应权限并且只有有限的人员才能更改数据的情况下使用比较运算符(以维护数据的完整性)。
查询还使用字符串比较,对本地变量、游标或列中的值与常量进行比较。例如,所有国家为 UK 的客户 (customer) 行均要打印。下表是 Unicode 与非 Unicode 数据之间的字符串比较示例,其中 ST1 为 char,ST2 为 nchar。
| 比较 | 描述 |
|---|---|
| ST1 = ST2 | 等价于 CONVERT(nchar, ST1) = ST2 或 CAST(ST1 as nchar) = ST2。 |
| ST1 = 'non-Unicode string' | 常规 SQL-92 字符串比较。 |
| ST2 = 'non-Unicode string' | 等价于 ST2 = CONVERT(nchar, 'non-Unicode string') 或 ST2 = CAST('non-Unicode string'AS nchar)。 |
| ST2 = N'' | Unicode 比较。 |
| CONVERT(nchar, ST1) = ST2或 CAST(ST1 AS nchar) = ST2 |
Unicode 比较。 |
| ST1 = CONVERT(char, ST2) 或 ST1 = CAST(ST2 AS char) |
常规 SQL-92 字符串比较。 |
| N'' (Unicode empty string in parentheses) | 空字符串。 |
| '' (non-Unicode empty string) | 空字符串或包含一个空格字符的字符串(取决于 SQL-92 设置)。 |