我有一个包含以下示例数据的表id_test1:
P_Key Name phone address zip
1 a 123 NCR 1002
2 b 456 LKO 12045
3 c 789 BLR 3652
4 d 987 DLI 4528
5 e 654 NCR 7854我有一个包含此数据的另一个表id_test2:
P_Key Name phone address zip
1 x 985 NCR 1002
2 y 562 LKO 12045
3 z 365 BLR 3652
4 q 362 DLI 4528
5 w 124 NCR 7854我想将这些表合并到一个名为id_test的新表中。但是p_key列应该是唯一的。我想将这两个表的数据合并成一个表,如下所示:
P_Key Name phone address zip
1 a 123 NCR 1002
2 b 456 LKO 12045
3 c 789 BLR 3652
4 d 987 DLI 4528
5 e 654 NCR 7854
6 x 985 NCR 1002
7 y 562 LKO 12045
8 z 365 BLR 3652
9 q 362 DLI 4528
10 w 124 NCR 7854我曾经在Oracle数据库中工作过,并且我是SQL Server 2008的新手。请提供您的建议。谢谢!
发布于 2015-12-09 12:51:38
在SQL中,有一个整洁的小工具,叫做if exists。
它不是完美的,但对于初学者来说,它工作得很好。
由于我不理解您的结构,让我们假设您有一个简单的ID和姓名表。ID必须唯一。
You want to add
ID=1, Name=A
ID=2, Name=B
ID=1, Name=C
You want it to end up with:
ID=1, Name=A:C
ID=2, Name=B您的SQL如下所示:
@ID = <id of thing you are inserting>
@NAME = <name of thing you are inserting>
if exists (select * from table where ID = @ID)
BEGIN
UPDATE table set NAME = NAME + ',' + @NAME where ID = @ID
END
else
BEGIN
INSERT values (@ID, @NAME) into table
END我的SQL语法可能需要一些细微的编辑,但您应该明白这一点。例如,我怀疑我是否有正确的语法来连接varchars。
https://stackoverflow.com/questions/34170776
复制相似问题