我有一个带有表的数据库book
(id, name, display, priority
)
例如:
________________________________________________________
| id | name | display | priority |
--------------------------------------------------------
| 1 | test1 | True | 5 |
| 2 | test2 | True | 3 |
| 3 | test3 | False | 4 |
| 4 | test4 | True | 1 |
| 5 | test5 | True | 2 |
| 6 | test6 | False | 1 |
| 7 | test7 | True | 1 |
| 8 | test8 | True | 4 |
| 9 | test9 | True | 3 |
| 10 | test10 | False | 2 |
| 11 | test11 | True | 3 |
| 12 | test12 | True | 5 |
--------------------------------------------------------
我需要编写一个查询以仅获取 3 行优先级为 1 和 2 和 3 并且显示为真
我使用这个存储过程来显示优先级为 1 和 2 和 3 的书籍(最具体的书籍)
问题:
当我尝试
select top 3 order by priority
查询获取优先级 = 1 的前 3 行时,我需要优先级 = 1 的 1 条记录和优先级 = 2 的 1 条记录和优先级 = 3 的 1 条记录。当我尝试获取时
distinct book
,不同的作品对所有记录都不是优先级的
结果:
我需要结果如下:
________________________________________________________
| id | name | display | priority |
--------------------------------------------------------
| 4 | test4 | True | 1 |
| 2 | test2 | True | 3 |
| 5 | test5 | True | 2 |
--------------------------------------------------------
我怎样才能做到这一点?
感谢帮助