SQL多列大于表达式

时间:2018-09-17 23:06:39

标签: sql postgresql pagination comparison where

看到了以下与游标分页结果有关的SQL,并且难以找到有关其部分工作原理的更多信息:

SELECT b.* FROM books b
WHERE (b.name, id) > (select b2.name, b2.id
                      from books b2
                      where b2.id = ?
                      )
ORDER BY b.name;

当一个比较表达式中有多个列时会发生什么?我还没有找到其他示例。

1 个答案:

答案 0 :(得分:2)

从左到右以“元组”进行比较。因此,在每个元组中比较第一个值,然后比较下一个。所以:

  • (1, 2) > (1, 1)->是
  • (1, 1) > (1, 1)->假
  • (2, 1) > (2, 2)->假
  • (2, 1) > (1, 10)->是