简体   繁体   English

单个查询SQL中的多个数据范围

[英]Multiple Data Ranges in a Single Query SQL

I have a student table now I want to write a query that return a single student in a specified ranges. 我现在有一个学生表,我想编写一个查询,该查询返回指定范围内的单个学生。 For example if I provide two ranges (30 to 40) and (40 to 60), query should return me 2 students one which is in the range 30 to 40 and one in the range 40 to 60. How can I write a single query? 例如,如果我提供两个范围(30到40)和(40到60),查询应返回2个学生,一个在30到40范围内,另一个在40到60范围内。如何编写一个查询?

Use two selects with different ranges in where statement combined by UNION UNION组合的where语句中使用两个具有不同范围的选择

Example: 例:

(SELECT * FROM students WHERE ranges BETWEEN 30 AND 40 LIMIT 1)
UNION
(SELECT * FROM students WHERE ranges BETWEEN 40 AND 60 LIMIT 1)

You can use OR condition: 您可以使用OR条件:

(range between 30 and 40) OR (range between 40 and 60) . (range between 30 and 40) OR (range between 40 and 60)

and CASE : CASE

CASE WHEN range between 30 and 40 then 'X' else 'Y' as CLASS

and then you can use GROUP BY to select 1 record for class so: 然后您可以使用GROUP BY为班级选择1条记录,以便:

SELECT MAX(STUDENT_ID), CASE WHEN range between 30 and 40 then 'X' else 'Y' as CLASS
FROM MY_TABLE
GROUP BY CLASS

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM