繁体   English   中英

如何使用C#或SQL将两列合并为一列

[英]How to merge two columns into one using c# or sql

抱歉,我确实是编程的新手,我正在尝试使用sql将两个不同的列合并为一个列,但是如果不可能,可以在c#中使用sql代码来完成吗? 我有两个表Product1和Product2,这些表都具有CatID。

对于Product1,CatID包含

1个
2
3

对于Product2,CatID包含

1个
2
3
4
5

我使用union的结果是,如果它们都具有相似的id,它将被合并为一个,而使用concat它将被复制为like

1 1
2 2
3 3
4
5

但是我想要的结果是1到3是从product1开始的,然后从product2的4到8是这样的,它将继续计数,没有重复:

1个
2
3
4
5
6
7
8

这可能吗?

你可以尝试这个查询,使用union

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

我不确定您想要什么,但是使用LINQ可以创建一个选择。 如果您向我们展示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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM