酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

select stuid, stu_name, college_id, game_id, project_id, groupid, status, draw_number from gt_student where groupid ='学生组' and project_id = 2 order by college_id 把这个sql改成 查出来的college_id相同的不相临 最后数据全部都要是抽签功能要求相同公司的人不能相邻

以下是一种可能的解决方案,但请注意这可能不是最优化的,具体取决于您的数据库系统和数据量: ```sql SELECT stuid, stu_name, college_id, game_id, project_id, groupid, status, draw_number FROM (SELECT *, ROW_NUMBER() OVER (PARTITION BY college_id ORDER BY RANDOM()) AS rn FROM gt_student WHERE groupid ='学生组' AND project_id = 2 ) t ORDER BY rn; ``` 上述查询中,首先在子查询中通过 `ROW_NUMBER()` 函数结合 `RANDOM()` 为每个 `college_id` 分组内的行随机分配一个行号 `rn`,然后在外层查询中按照这个随机行号进行排序,从而实现相同 `college_id` 的行不相邻的效果。 [2024-10-17 11:06:58 | AI写代码神器 | 186点数解答]

相关提问