SQL 大于表达式中的多列
SQL multiple columns in greater than expression
看到以下 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;
当您在一个比较表达式中有多个列时会发生什么情况?我还没有找到这方面的任何其他例子。
从左到右进行比较"tuples"。因此,在每个元组中比较第一个值,然后比较下一个值。所以:
(1, 2) > (1, 1)
--> 真
(1, 1) > (1, 1)
--> 假
(2, 1) > (2, 2)
--> 假
(2, 1) > (1, 10)
--> 真
看到以下 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;
当您在一个比较表达式中有多个列时会发生什么情况?我还没有找到这方面的任何其他例子。
从左到右进行比较"tuples"。因此,在每个元组中比较第一个值,然后比较下一个值。所以:
(1, 2) > (1, 1)
--> 真(1, 1) > (1, 1)
--> 假(2, 1) > (2, 2)
--> 假(2, 1) > (1, 10)
--> 真