gpt4 book ai didi

mysql - 从范围的不同区域选择行的 SQL 查询

转载 作者:行者123 更新时间:2023-11-29 23:30:32 25 4
gpt4 key购买 nike

我有一个带有实体的表entities,它具有唯一索引entity_id

例如,1

我想进行一个sql查询,选择:

  • 如果entity_id < 200,则为 3 个或更少的随机实体,
  • 如果 200 <=entity_id < 400,则为 3 个或更少的随机实体,
  • 如果 400 <=entity_id < 600,则为 3 个或更少的随机实体,
  • 如果 600 <=entity_id < 800,则为 3 个或更少的随机实体
  • 如果 800 <=entity_id,则为 3 个或更少的随机实体

所以,我想要一个查询并从实体范围的每个区域获取实体。如果多一个矿石区域为空也没关系

我不知道如何实现它。

请帮忙

最佳答案

您可以编写一个返回表的函数,并在该函数中首先定义一个包含所需列的表,例如:

DECLARE @ReturnTable TABLE (entity_id INT, column2 INT, etc.)

然后,声明另一个与实体相同但具有随机数列的表。

DECLARE @EntitiesCopy TABLE (entity_id INT, rand INT);

填充 @EntitiesCopy 表,如下所示:

INSERT INTO @EntitiesCopy SELECT *, RAND() FROM entities

然后,编写插入语句,例如:

INSERT INTO @ReturnTable(column1, column2) 
SELECT TOP 3 * FROM @EntitiesCopy
WHERE (entity_id > 1) AND (entity_id < 200)
ORDER BY rand

其他条件类似。

那么,

RETURN @ReturnTable

关于mysql - 从范围的不同区域选择行的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26619525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com