テーブルを持つデータベースがあります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 |
--------------------------------------------------------
優先度 1 と 2 と 3 の 3 行のみを取得するクエリを作成する必要があり、表示は true です
このストアド プロシージャを使用して、優先度が 1、2、3 の本 (最も具体的な本) を表示します。
問題:
クエリが最初の 3 行を優先度 = 1 で取得しようとすると
select top 3 order by priority
、優先度 = 1 の 1 レコードと優先度 = 2 の 1 レコードと優先度 = 3 の 1 レコードが必要になります。を取得しようとすると
distinct book
、優先順位だけでなく、すべてのレコードに対して明確な動作が行われます
結果:
結果が次のようになる必要があります。
________________________________________________________
| id | name | display | priority |
--------------------------------------------------------
| 4 | test4 | True | 1 |
| 2 | test2 | True | 3 |
| 5 | test5 | True | 2 |
--------------------------------------------------------
どうやってやるの?
手伝ってくれてありがとう