SQL-Sqlite查询:获取一个数字大于另一个数字的字段,如果小于3,则始终为3



好吧,我做了一个不起作用的查询

我有一张像这样的桌子

_id-E1
-----------
1-100
2-335
3-420
4-440
5-500
6-514
7-524
8-534
9-544
10-552
11-559
12-607
13-615
14-623
15-631
16-639

以及我提出的问题:

SELECT * FROM (SELECT * FROM Table WHERE E1 > 633 AND _sentido = 'V' UNION SELECT * FROM Table) LIMIT 3

当我执行这个时,我得到

_id-E1
-----------
1-100
2-335
3-420

但我真正想要的是

_id-E1
-----------
1-639
2-100
3-335

如果最后一行并且没有3个选定的行,则完成第一行到达3个

总是3排!

我希望你能帮助我,John

您有一个聪明的方法,但它不会起作用。不保证子查询的顺序。你想要的是先根据你的情况订购,然后填写其余的。试试这个:

SELECT *
FROM table
ORDER BY (case when E1 > 633 AND _sentido = 'V' then 1 else 2 end)
LIMIT 3;

这会把你感兴趣的唱片放在第一位。limit 3将检索这些记录(最多3条),然后用其余记录填充其余行。

最新更新