行表达式

语法:

row_constructor operator row_constructor

两边都是一个行构造器,两行值必须具有相同数目的字段,每一行都进行比较,行比较允许使用=,<>,<,<=,>=等操作符,或其中一个相似的语义符。

\=<>和别的操作符使用略有不同。如果两行值的所有字段都是非空并且相等,则认为两行是相等的;如果两行值的任意字段为非空并且不相等,则认为两行是不相等的;否则比较结果是未知的(null)。

对于<,<=,>,> =的情况下,行中元素从左到右依次比较,直到遇到一对不相等的元素或者一对为空的元素。如果这对元素中存在至少一个null值,则比较结果是未知的(null),否则这对元素的比较结果为最终的结果。

示例:

  1. postgres=# SELECT ROW(1,2,NULL) < ROW(1,3,0) AS RESULT;
  2. result
  3. ----------
  4. t
  5. (1 row)