SQL查询的奇数要求

SQL查询的奇数要求,sql,Sql,我有一个列为“Id”和“Status”的表。 我想编写一条SQL语句,在一次SQL查询中从该表中选择前50行,其中25行状态为1,25行状态为2 我希望结果中的行具有备用状态 请建议我如何编写此查询。如果您使用MSSQL,您可以执行以下操作: SELECT TOP 25 * FROM Table1 WHERE Table1.Status=1 UNION ALL SELECT TOP 25 * FROM Table1 WHERE Table1.Sta

我有一个列为“Id”和“Status”的表。 我想编写一条SQL语句,在一次SQL查询中从该表中选择前50行,其中25行状态为1,25行状态为2

我希望结果中的行具有备用状态


请建议我如何编写此查询。

如果您使用MSSQL,您可以执行以下操作:

SELECT TOP 25
    *
FROM
    Table1
WHERE
    Table1.Status=1
UNION ALL
SELECT TOP 25
    *
FROM
    Table1
WHERE
    Table1.Status=2
如果你使用MYSQL,你必须使用LIMIT。像这样:

(
    SELECT 
        *
    FROM 
        Table1
    WHERE
        Table1.Status=1
    LIMIT 25
)
UNION ALL
(
    SELECT 
        *
    FROM 
        Table1
    WHERE
        Table1.Status=2
    LIMIT 25
);

如果使用MSSQL,则可以执行以下操作:

SELECT TOP 25
    *
FROM
    Table1
WHERE
    Table1.Status=1
UNION ALL
SELECT TOP 25
    *
FROM
    Table1
WHERE
    Table1.Status=2
如果你使用MYSQL,你必须使用LIMIT。像这样:

(
    SELECT 
        *
    FROM 
        Table1
    WHERE
        Table1.Status=1
    LIMIT 25
)
UNION ALL
(
    SELECT 
        *
    FROM 
        Table1
    WHERE
        Table1.Status=2
    LIMIT 25
);

对于SQL Server,请使用
TOP

SELECT TOP 25 * FROM TableName WHERE Status=1
UNION ALL
SELECT TOP 25 * FROM TableName WHERE Status=2
对于替代结果:

SELECT * FROM 
(
    SELECT TOP 25 *,ROW_NUMBER() OVER(ORDER BY Status) as RN FROM TableName WHERE Status=1
    UNION ALL
    SELECT TOP 25 *,ROW_NUMBER() OVER(ORDER BY Status) as RN FROM TableName WHERE Status=2
) T
ORDER BY RN

对于SQL Server,请使用
TOP

SELECT TOP 25 * FROM TableName WHERE Status=1
UNION ALL
SELECT TOP 25 * FROM TableName WHERE Status=2
对于替代结果:

SELECT * FROM 
(
    SELECT TOP 25 *,ROW_NUMBER() OVER(ORDER BY Status) as RN FROM TableName WHERE Status=1
    UNION ALL
    SELECT TOP 25 *,ROW_NUMBER() OVER(ORDER BY Status) as RN FROM TableName WHERE Status=2
) T
ORDER BY RN

你正在使用哪些RDBMS?前25名(状态1)UNION ALL TOP 25(状态2)将帮助你使用哪些RDBMS?前25名(状态1)UNION ALL TOP 25(状态2)将帮助你我刚才写的和你的一样好,但你在我面前给出答案:(很好,我刚才写的和你的一样,但你在我面前给出答案:(抱歉,但我更改了一点要求。我需要具有备用状态的行。@user2873833:您使用的是哪种RDBMS?SQL Server还是MySQL?@user2873833:编辑了我的答案。如果答案是您想要的,请随意接受。如果您不知道如何接受,请接受。抱歉,但我稍微更改了要求。我需要这些行。)第三种备用状态。@user2873833:您使用的是哪种RDBMS?SQL Server还是MySQL?@user2873833:编辑了我的答案。如果答案是您想要的,请随意接受。如果您不知道如何接受,请。