SQL-запрос первых строк с конкретными значениями столбцов - PullRequest
0 голосов
/ 29 августа 2011

Я хочу начать с того, что знаю, что есть несколько вопросов, касающихся подобных проблем, но они либо не отвечают на мой вопрос полностью, либо кажутся несовместимыми с SQLite.

Я хочу запросить все строки со значением -1, а первые строки - со значениями, отличными от -1. И под «первыми строками» я подразумеваю группу строк, которые сначала имеют определенное значение. первая строка - это строка, на которую впервые наткнулся в зависимости от условия SORT BY

Пример данных и результатов:

Данные:

a   b   -1 
c   d    1
e   f    2
g   h    2
i   j    2 
k   l   -1

Результат:

a   b   -1 
c   d    1
e   f    2
k   l   -1

И, как сказано выше, я использую базу данных SQLite

Ответы [ 2 ]

0 голосов
/ 29 августа 2012

С простым примером:

> select * from ex1; 
+------+----------+
| id   | name     |
+------+----------+
|    1 | Pirate   |
|    2 | Monkey   |
|    3 | Ninja    |
|    4 | Spagheti |
|    5 | kumar    |
|    6 | siva     |
+------+----------+

> select * from ex1 union select "1", "sing" order by case name when 'sing' then 1 else 2 end, name;
+------+----------+
| id   | name     |
+------+----------+
| 1    | sing     |
| 5    | kumar    |
| 2    | Monkey   |
| 3    | Ninja    |
| 1    | Pirate   |
| 6    | siva     |
| 4    | Spagheti |
+------+----------+
0 голосов
/ 29 августа 2011

Делайте это как два отдельных запроса, один из которых содержит встроенное представление;СОЮЗ двое

  select blah, blah from T where  ...
UNION
  select * from
  (
    select blah, blah from T where something else order by somecolumn limit 1
  )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...