pgsql比较操作
来源:互联网 发布:oracle 数据库别名 编辑:程序博客网 时间:2024/06/05 16:28
9.2. 比较操作符
可用的比较操作符在 Table 9-1 显示。
Table 9-1. 比较操作符
注意: != 操作符在分析器阶段被转换成 <>。把 != 和 <> 操作符实现为做不同的事是不可能的。
比较操作符可以用于所有可以比较的数据类型。 所有比较操作符都是双目操作符,返回 boolean 类型数值; 象1 < 2 < 3 这样的表达式是非法的 (因为没有什么 < 操作符用于 在布尔值和3之间做比较)。
除了比较操作符以外,我们还可以使用 BETWEEN 构造。
a BETWEEN x AND y
等效于
a >= x AND a <= y
类似的还有
a NOT BETWEEN x AND y
等效于
a < x OR a > y
这两种形式之间没有甚么区别,只不过第一种形式需要一些 CPU 周期在内部将它改写成第二种形式。 BETWEEN SYMMETRIC 和 BETWEEN 一样,只是没有要求 AND 左边的参数小于或等于右边的参数; 合适的范围是自动计算出来的。
要检查一个值是否为 NULL,使用下面构造
expression IS NULLexpression IS NOT NULL
或者等效,但并不标准的构造
expression ISNULLexpression NOTNULL
不要 写 expression = NULL 因为 NULL 是不"等于" NULL 的。(NULL 代表一个未知的数值,因此我们无法知道两个未知的数值是否相等。) 这个行为遵循 SQL 标准。
提示: 有些应用可能要求表达式 expression = NULL 在 expression 得出 NULL 值地时候返回真。 我们强烈建议这样的应用修改成遵循 SQL 标准。但是,如果这样修改是不可能的,那么我们可以使用配置变量 transform_null_equals。 如果打开它, PostgreSQL 将把 x = NULL 子句转换成 x IS NULL。 在 PostgreSQL 版本 6.5 到 7.1 之间,这是缺省的行为。
如果有任何一个输入是空,那么普通的比较操作符生成空(表示"未知")。 另外一个比较的方法是用 IS DISTINCT FROM 构造:
expression IS DISTINCT FROM expression
对于非空输入,这个与 <> 操作符相同。 但是,假如两个输入都是空,那么它将返回假,而如果只有一个输入是空,那么它将返回真。 这样就很有效地把空当作一个普通地数据值看待,而不是"未知"。
布尔数值可以用下面的构造进行测试
expression IS TRUEexpression IS NOT TRUEexpression IS FALSEexpression IS NOT FALSEexpression IS UNKNOWNexpression IS NOT UNKNOWN
这些构造将总是返回真或假,从来不返回空值,即使操作数是空也如此。 空值输入被当做逻辑数值"未知"。 请注意实际上 IS UNKNOWN 和 IS NOT UNKNOWN 分别与 IS NULL 和 IS NOT NULL 相同, 只是输入表达式必须是布尔类型。
PrevHomeNext函数和操作符Up数学函数和操作符
- pgsql比较操作
- pgsql 日期类型比较
- Mysql,Oracle,Pgsql 比较
- pgsql数据操作
- pgsql更新操作
- pgsql删除操作
- pgsql 查询操作
- python连接,操作pgsql
- pgsql中的json操作
- pgsql操作数据库命令
- pgsql函数和操作符
- pgsql 数学函数及操作
- pgsql
- 简单的pgsql pdo php操作类
- PGSQL 数据库
- pgSQL数据类型
- pgsql备忘录
- pgsql 5.2
- "Installing Software" has encountered a problem---pydev on ubuntu
- 注册表相关
- JAVA动态代理
- Magento事件机制 - Magento Event/Observer 【magento二次开发】
- How floating point variables
- pgsql比较操作
- tomcat开启https
- jsp:选中复选框实现删除功能
- hdu 1269 迷宫城堡
- 主宰全球的10大算法
- js中ie与标准dom的区别——事件处理
- pgsql 数学函数及操作
- adb shell dumpsys 命令 查看内存
- 日期格式化{0:yyyy-MM-dd HH:mm:ss.fff}和{0:yyyy-MM-dd hh:mm:ss.fff}的区别