我有一个表和条件来匹配两列的子字符串/整数值。
示例表如下所示
表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:我不知道如何使用查询,因此无法提供任何样本。我使用的数据库没有完整的外连接(如果此信息有用的话)
答案 0 :(得分:0)
对于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