![](/img/trans.png)
[英]Update a column only if value of two columns(combination of both) are present else insert all values in Oracle DB
[英]UPDATE all values of a column with a single value, if that value is present, for all users
我有這樣的表:
ID | cur_val | done | res
1 | 10000 | false | false
2 | 20000 | false | false
3 | 30000 | false | false
1 | 40000 | false | false
3 | 60000 | false | false
1 | 10000 | true | false
我需要一個更新查詢來根據done
列中的值更新res
列(默認情況下為false
)。 具體來說,對於任何ID
,如果done
為true
,則與該ID
關聯的所有res
值都應更新為true
。
決賽桌應該是這樣的:
ID | cur_val | done | res
1 | 10000 | false | true
2 | 20000 | false | false
3 | 30000 | false | false
1 | 40000 | false | true
3 | 60000 | false | false
1 | 10000 | true | true
我將不勝感激任何幫助。
在sql server
中
UPDATE t1
SET res = 1
FROM yourtable t1
WHERE EXISTS
(SELECT 1
FROM yourtable t2
WHERE t1.ID = t2.ID
AND done = 1)
在postgres
中
UPDATE yourtable t1
SET res = true
WHERE EXISTS
(SELECT 1
FROM yourtable t2
WHERE t1.id = t2.id
AND done = true)
;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.