我有一個sql查詢使用listagg函數來創建一個逗號分隔列表到一個正常工作的返回字段。但是,我只想包括順序排列的結果序列號爲順序的結果。它們都必須從0開始,但沒有特定的結束序列號。他們有時會跳過序列號,所以我想刪除這些只返回來自oracle的順序編號值
因此,例如,我想包括像這樣
0
0,1
0,1,2
0,1,2,3
值,但我想跳過結果看起來像
1
0,2
0,1,3
0,0,2
是否有一些SQL語法可以將值過濾出來?
我有一個sql查詢使用listagg函數來創建一個逗號分隔列表到一個正常工作的返回字段。但是,我只想包括順序排列的結果序列號爲順序的結果。它們都必須從0開始,但沒有特定的結束序列號。他們有時會跳過序列號,所以我想刪除這些只返回來自oracle的順序編號值
因此,例如,我想包括像這樣
0
0,1
0,1,2
0,1,2,3
值,但我想跳過結果看起來像
1
0,2
0,1,3
0,0,2
是否有一些SQL語法可以將值過濾出來?
你或許可以用having
條款做到這一點:
select listagg(col, ',') . . .
from t
group by . . .
having min(col) = 0 and
count(*) = count(distinct col) and
max(col) = count(*) - 1
這些條件應保證與非連續的值的行被過濾掉。
請編輯您的問題和(1)顯示您正在使用的查詢和(2)顯示示例數據。 –