如何使用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
这可能吗?
这样试试:
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)