如何使用c#或sql将两列合并为一列

本文关键字:两列 一列 合并 何使用 sql | 更新日期: 2023-09-27 18:19:49

对不起,我真的是编程新手,我正试图使用sql将两个不同的列合并为一列,但如果不可能,可以使用c#中的sql代码吗?我有两个表Product1和Product2,这两个表都有CatID。

对于产品1,CatID包含

1
2
3

对于产品2,CatID包含

1
2
3
4
5

我使用union得到的结果是,如果它们都有相似的id,它将合并为一个id,使用concat它将复制为类似的id

1 1
2 2
3 3
4
5

但我想要的结果是,1到3来自产品1,然后4到8来自产品2,就像它将继续计数一样,没有重复:

1
2
3
4
5
6
7
8

这可能吗?

如何使用c#或sql将两列合并为一列

这样试试:

SELECT CatID, ...OtherColumns...
FROM Product1
UNION SELECT CatID, ...OtherColumns...
FROM Product2
WHERE Product2.CatID NOT IN(SELECT CatID FROM Product1)
ORDER BY CatID

(此处测试:http://sqlfiddle.com/#!9/7887c):

CREATE TABLE T1(ID INT, txt VARCHAR(10));
INSERT INTO T1 SELECT 1, 'test A'
        UNION  SELECT 2, 'test B'
        UNION  SELECT 3, 'test C';
CREATE TABLE T2(ID INT, txt VARCHAR(10));
INSERT INTO T2 SELECT 1, 'test 1'
        UNION  SELECT 2, 'test 2'
        UNION  SELECT 3, 'test 3' 
        UNION  SELECT 4, 'test 4'        
        UNION  SELECT 5, 'test 5';
SELECT ID, txt
FROM T1
UNION SELECT ID, txt
FROM T2
WHERE T2.ID NOT IN(SELECT ID FROM T1)
ORDER BY ID

结果:

ID  txt
1   test A
2   test B
3   test C
4   test 4
5   test 5

我不确定您想要什么,但使用LINQ可以创建一个select。如果您向我们展示SQL代码,将会非常有帮助。

您可以尝试此查询吗,使用union

select * from Product1
union
select * from Product2 NOT IN(SELECT CatID FROM Product1)