簡體   English   中英

SQL查詢根據用戶定義的條件更新行

[英]SQL query to update rows based on user defined condition

我有一個表和一個條件來匹配子字符串/兩列的整個值。

樣本表如下

表格1:

id           id1    id2              id3        id4
18499       18499   8001480043398   datarow1a   datarow1a
18497       18497   8000900121777   datarow1a   datarow1a
18495       18495   8024180001901   datarow1b   datarow1b
18493       18493   8001480070530   datarow1c   something1c
18573       18573   8001480007703   datarow1b   datarow1b

具有用戶條件的示例查詢:

select * 
from table1 
where id3 = id4.

結果:

id           id1    id2              id3        id4
18499       18499   8001480043398   datarow1a   datarow1a
18497       18497   8000900121777   datarow1a   datarow1a
18495       18495   8024180001901   datarow1b   datarow1b
18573       18573   8001480007703   datarow1b   datarow1b

但是我想要根據用戶需求將id1更新為最小或最大id。 因此,如果用戶選擇min,則第1行和第2行的id1應該如下所示

 id          id1    id2              id3        id4
18499       18497   8001480043398   datarow1a   datarow1a
18497       18497   8000900121777   datarow1a   datarow1a

對於第3行和第4行,應為

18493       18493   8001480070530   datarow1c   datarow1c
18573       18493   8001480007703   datarow1b   datarow1b

誰能分享我該如何處理?

PS:我不知道如何使用查詢,因此無法提供任何示例。 我使用的數據庫沒有完整的外部聯接(如果此信息有用)

對於Max:

UPDATE table_1 
SET    id1 = (SELECT Max(id1) 
          FROM   table_1 t2 
          WHERE  table_1.id3 = t2.id3) 
WHERE  id3 = id4 

對於Min:

UPDATE table_1 
SET    id1 = (SELECT Min(id1) 
          FROM   table_1 t2 
          WHERE  table_1.id3 = t2.id3) 
WHERE  id3 = id4 

暫無
暫無

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

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