Я хочу начать с того, что знаю, что есть пара вопросов относительно аналогичных проблем, но они либо не отвечают на мой вопрос полностью, либо кажутся несовместимыми с 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 ответа
Сделайте это как два отдельных запроса, один из которых содержит встроенное представление; СОЮЗ двух
select blah, blah from T where ...
UNION
select * from
(
select blah, blah from T where something else order by somecolumn limit 1
)
На простом примере:
> 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 |
+------+----------+
Похожие вопросы
Новые вопросы
sql
Язык структурированных запросов (SQL) - это язык запросов к базам данных. Вопросы должны включать примеры кода, структуру таблицы, примеры данных и тег для используемой реализации СУБД (например, MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 и т. Д.). Если ваш вопрос относится исключительно к конкретной СУБД (использует определенные расширения / функции), используйте вместо этого тег этой СУБД. Ответы на вопросы, помеченные SQL, должны использовать стандарт ISO / IEC SQL.