我有這樣一個關于聊天專案的簡單表格
我有一個查詢,通過chatId專案獲得最新輸入的聊天記錄,如下所示
select MAX(id)
from ChatItem
WHERE ChatItem.CaseInvoiceId= 160670
現在,我想獲得最新的、優先級為isDone=0的專案。
如果任何一個結果行的isDone=0,它將獲得isDone=0的MAX(ID)。 如果沒有,它將得到MAX(ID)和isDone = 1。
有什么簡單而漂亮的方法可以做到這一點嗎?
uj5u.com熱心網友回復:
怎么樣:
select top 1 id
from ChatItem
where ChatItem.CaseInvoiceId = 160670
order by isdone, id desc
我們的想法是按照isDone的順序排列,所以0應該在前面(如果有的話),然后按照DESC的順序排列id,所以MAX值應該在上面,然后回傳最上面的一行。
這是在SQL Server上撰寫和測驗的。
uj5u.com熱心網友回復:
只要用and添加你的條件:
select max ( "Id")
from "ChatItem"
where "CaseInvoiceId" = 160670 and "isDone" = 0;
例子:
https://www.db-fiddle.com/f/be7ujQ4zMzzYaDS8Tg5d4v/0
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/306822.html
標籤:
