抱歉,我真的是编程的新手,我正在尝试使用sql将两个不同的列合并到一个列中,但如果不可能,可以使用c#中的sql代码完成吗? 我有两个表Product1和Product2,这些表都有CatID。
对于Product1,CatID包含
1
2
3
对于Product2,CatID包含
1
2
3
4
5
我使用union获得的结果是,如果它们具有相似的id,它将合并为一个并使用concat将复制到类似
1 1
2 2
3 3
4
5
但我想要的结果是1到3来自product1,然后是product2中的4到8,就像它会继续计数而没有重复:
1
2
3
4
5
6
7
8
这可能吗?
答案 0 :(得分:0)
您可以尝试此查询,使用union
select * from Product1
union
select * from Product2 NOT IN(SELECT CatID FROM Product1)
答案 1 :(得分:0)
我不确定你想要什么,但是使用LINQ你可以创建一个选择。如果您向我们展示SQL代码,那将非常有用。
答案 2 :(得分:0)
试试这样:
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