Java 基于SQL中同一表的第三列,将一列替换为另一列

Java 基于SQL中同一表的第三列,将一列替换为另一列,java,sql,spring-mvc,Java,Sql,Spring Mvc,我有一个表,对于表的一列,我需要根据它与同一表的另一列再次匹配的值,用另一列中的值替换它的值,只要不null 意思是说我有主键为c1的表t1: c1 c2 c3 -------------------------- 1 a null 23 b null 2 c 1 因此,我希望我的结果是: c1 c2 c3

我有一个表,对于表的一列,我需要根据它与同一表的另一列再次匹配的值,用另一列中的值替换它的值,只要不
null

意思是说我有主键为c1的表
t1

  c1       c2         c3
--------------------------
1          a           null
23         b           null
2          c             1
因此,我希望我的结果是:

  c1         c2            c3
------------------------------
1             a           null
23            b           null
2             c             a   ---->(means the  1 in column c3 is replaced by column c2's 
                                       value whose c1's value is 1)
给你:

update t1 set y.c3 = x.c2
from t1 x inner join t1 y on x.c1 = y.c3;
试试这个:

SELECT t.c1,t.c2,(SELECT a.c2 FROM t1 a WHERE a.c1=t.c3) FROM t1 t

1) 请对代码、输入/输出和结构化文档(如HTML或XML)使用代码格式。为此,请选择示例并单击消息发布/编辑表单上方的
{}
按钮。2) 您已经描述了一个问题,但到目前为止还没有提出任何问题(更不用说具体的、可回答的问题了)。你的问题是什么?如果可以总结为“如何基于SQL中同一表的第三列将一列替换为另一列?”请将其包括在内。请在句子开头添加大写字母。也可以用大写字母表示I,缩写和首字母缩略词如JEE或WAR。这使人们更容易理解和帮助。你正在尝试的是所谓的自我加入。将一个表连接到自身,就好像有两个单独的表包含完全相同的数据一样。