簡體   English   中英

滿足條件時在結果中添加行的 SQL

[英]SQL to add rows in result when condition is met

當獲得徽章代碼組合時,我需要在結果中添加新行。

user    badge_code
------- ----------
Jim     2 
George  4
Jim     5
Mike    2

例如,如果用戶像 Jim 一樣獲得了 badg_code #2 和 #5,那么包括另一行——他們已經根據該組合達到了一個新的 badg_code #10。

user    badge_code
------- ----------
Jim     2 
George  4
Jim     5
Mike    2
Jim     10

我懷疑我需要一個聯合來添加行,但不能根據每個用戶前一行的條件來解決這個問題。 我正在使用 SQL Server。

您可以使用union all

select user, badge_code
from t
union all
select user, 10
from t
where badge_code in (2, 5)
group by user
having count(*) = 2;

此公式假設用戶只獲得一次徽章代碼。 如果他們可以多次獲得相同的收入,則使用count(distinct badge_code) = 2代替。

暫無
暫無

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

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