簡體   English   中英

SQL-Sqlite查詢:獲取一個數字大於另一個數字的字段,如果小於3且第一個數字完整,則始終為3

[英]SQL - Sqlite Query: obtain the fields where one number is greater than another, if less than 3 complete with the first, always 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行!

我希望你能幫助我,約翰

您有一個聰明的方法,但這是行不通的。 不能保證子查詢的順序。 您想要的是先根據自己的條件訂購,然后再填寫其余部分。 嘗試這個:

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

這會將您感興趣的記錄放在第一位。 limit 3將檢索這些記錄(最多3條),然后用其余的記錄填充剩余的行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM