SQL查询多列分页;了解OR运算符

问题描述 投票:0回答:2

我正在使用一个工具,该工具在下面生成Postgresql查询:

SELECT
    "id",
    "score"
FROM
    "players"
WHERE
    "score" > '11266' OR ( "score" = '11266' AND "id" > '4482' )
ORDER BY
    "score" ASC,
    "id" ASC
    LIMIT 3

我需要了解为什么OR运算符?

我的玩家表可以包含具有相同score但不相同id的许多行。

[当多行具有相同的OR值时是否需要score

sql database postgresql sorting
2个回答
0
投票

SELECT  *
FROM    ( SELECT    ROW_NUMBER() OVER ( ORDER BY OrderDate ) AS RowNum, *
          FROM      Orders
          WHERE     OrderDate >= '1980-01-01'
        ) AS RowConstrainedResult
WHERE   RowNum >= 1
    AND RowNum < 20
ORDER BY RowNum

0
投票

OR的目的-如您所怀疑-是要处理分数中有联系的情况。这个想法是要进行稳定的排序,因此这可以使所有内容after (score, id)

Postgres实际上支持简单语法:

where (score, id) > (11266, 4482)

注意,我也删除了单引号。这些值看起来像数字,因此应将它们视为数字而不是字符串。

© www.soinside.com 2019 - 2024. All rights reserved.