cap*_*gon 3 sql database postgresql
无论CODE ="BB",我想插入一个包含所有相同行/列数据的新行,只需将CODE更改为"XX"即可.
例如:
当前表:
ID | CODE | Name
---+----------+---------
1 | AA | Tom
2 | BB | Mary
3 | AA | John
4 | CC | Carlos
5 | CC | Mario
6 | BB | Steve
7 | AA | Pablo
Run Code Online (Sandbox Code Playgroud)
执行SQL语句后相同:
ID | CODE | Name
---+----------+---------
1 | AA | Tom
2 | BB | Mary
3 | AA | John
4 | CC | Carlos
5 | CC | Mario
6 | BB | Steve
7 | AA | Pablo
8 | XX | Mary
9 | XX | Steve
Run Code Online (Sandbox Code Playgroud)
这可以在SQL语句中完成吗?而不是做我要做的事情,创建一个脚本循环遍历每个记录检查"BB"并根据它的值插入一个新行.
此代码包括检查以确保"XX"版本尚不存在.
INSERT INTO CurrentTable
(CODE, Name)
SELECT 'XX', ct1.Name
FROM CurrentTable ct1
WHERE ct1.CODE = 'BB'
AND NOT EXISTS(SELECT NULL
FROM CurrentTable ct2
WHERE ct1.name = ct2.name
AND ct2.CODE = 'XX')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4036 次 |
| 最近记录: |