
SQL找出某一列具有相同记录的另一列的最大值 并且更新相关的第三列
表名TCOL1COL2CLO3江苏4030江苏5020江西4540江西6560语句执行后结果为表名TCOL1COL2CLO3江苏4030江苏5070江西4570江西656...
表名T
COL1 COL2 CLO3
江苏 40 30
江苏 50 20
江西 45 40
江西 65 60
语句执行后结果为
表名T
COL1 COL2 CLO3
江苏 40 30
江苏 50 70
江西 45 70
江西 65 60
UPDATE T a SET COL3='70'
WHERE COL2=(SELECT MAX(COL2) FROM T WHERE COL1=a.COL1)
语句不对 。。执行不了 求高手解答
额 前面写错了 执行后的结果应该是
表名T
COL1 COL2 CLO3
江苏 40 30
江苏 50 70
江西 45 40
江西 65 70 展开
COL1 COL2 CLO3
江苏 40 30
江苏 50 20
江西 45 40
江西 65 60
语句执行后结果为
表名T
COL1 COL2 CLO3
江苏 40 30
江苏 50 70
江西 45 70
江西 65 60
UPDATE T a SET COL3='70'
WHERE COL2=(SELECT MAX(COL2) FROM T WHERE COL1=a.COL1)
语句不对 。。执行不了 求高手解答
额 前面写错了 执行后的结果应该是
表名T
COL1 COL2 CLO3
江苏 40 30
江苏 50 70
江西 45 40
江西 65 70 展开
3个回答
展开全部
UPDATE TestTable SET C=70
from T t1
where exists (select 1 from T t2 where t1.col1=t2.col1 and t1.col2=(select max(col2) from T t3 where t3.col1=t1.col1))
from T t1
where exists (select 1 from T t2 where t1.col1=t2.col1 and t1.col2=(select max(col2) from T t3 where t3.col1=t1.col1))
已赞过
已踩过<
评论
收起
你对这个回答的评价是?

2024-09-02 广告
Play Video 七鑫易维是致力于机器视觉和人工智能领域的高新科技企业,迄今已专注眼球追踪技术的研发、创新与应用超过14年,拥有完全自主知识产权,全球专利总量655余项。 作为眼球追踪技术领域的全球知名品牌,七鑫易维的产品体系覆盖眼动分...
点击进入详情页
本回答由七鑫易维信息技术提供
展开全部
不知道是不是你题目意思表述有误 按照我的理解应该是
表名TestTable
A B C
江苏 40 30
江苏 50 20
江西 45 40
江西 65 60
语句执行后结果为
江苏 40 30
江苏 50 70
江西 45 40
江西 65 70
UPDATE T SET COL3=70
WHERE COL1+CONVERT(VARCHAR, COL2) IN (SELECT COL1+CONVERT(VARCHAR, MAX(COL2)) FROM T GROUP BY COL1)
表名TestTable
A B C
江苏 40 30
江苏 50 20
江西 45 40
江西 65 60
语句执行后结果为
江苏 40 30
江苏 50 70
江西 45 40
江西 65 70
UPDATE T SET COL3=70
WHERE COL1+CONVERT(VARCHAR, COL2) IN (SELECT COL1+CONVERT(VARCHAR, MAX(COL2)) FROM T GROUP BY COL1)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没看明白你的例子
追问
找出第一列数据相同 第二列数字最大的记录 将此条记录的第3列更新为70
额 前面写错了 执行后的结果应该是
表名T
COL1 COL2 CLO3
江苏 40 30
江苏 50 70
江西 45 40
江西 65 70
追答
UPDATE T t1
SET CLO3 = 70
WHERE NOT EXISTS (SELECT 1 FROM T WHERE t1.COL1 = COL1 AND COL2 > t1.COL2)
你那个语句也可以,如果不行,估计你是SQL SERVER,不支持别名,可以考虑用这个
UPDATE t1 SET COL3='70'
FROM T t1 INNER JOIN (SELECT COL1, MAX(COL2) AS COL2 FROM T GROUP BY COL1) t2
on t1.COL1 = t2.COL1 AND t1.COL2 = t2.COL2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询