我想首先说我知道有几个关于类似问题的问题,但他们要么完全没有回答我的问题,要么似乎与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数据库
答案 0 :(得分:0)
将此操作作为两个单独的查询,其中一个包含内联视图; UNION这两个
select blah, blah from T where ...
UNION
select * from
(
select blah, blah from T where something else order by somecolumn limit 1
)
答案 1 :(得分:0)
举个简单的例子:
> 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 |
+------+----------+