Pri*_*aaj 1 t-sql sql-server sql-server-2008-r2 sql-server-2012
表格1
ID
----
1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)
表2
Name
----
Z
Y
X
W
V
Run Code Online (Sandbox Code Playgroud)
预期产量:
ID Name
-------------------------
1 NULL
2 NULL
3 NULL
4 NULL
5 NULL
NULL Z
NULL Y
NULL X
NULL W
NULL V
Run Code Online (Sandbox Code Playgroud)
我需要通过在SQL Server中使用JOINS来解决上述情况。
使用FULL OUTER JOIN
,您可以获得预期的结果。
由于没有公共字段,因此,表1中的记录都不应与表2相匹配,反之亦然。因此,也许ON 0 = 1
加入条件也将按预期工作。谢谢巴特霍夫兰
因此,以下查询也将起作用:
SELECT T1.Id, T2.[Name]
FROM Table1 T1
FULL OUTER JOIN Table2 T2 ON 0 = 1;
Run Code Online (Sandbox Code Playgroud)
要么
SELECT T1.Id, T2.[Name]
FROM Table1 T1
FULL OUTER JOIN Table2 T2 ON T2.[Name] = CAST(T1.Id AS VARCHAR(2));
Run Code Online (Sandbox Code Playgroud)
演示与示例数据:
DECLARE @Table1 TABLE (Id INT);
INSERT INTO @Table1 (Id) VALUES
(1),
(2),
(3),
(4),
(5);
DECLARE @Table2 TABLE ([Name] VARCHAR(1));
INSERT INTO @Table2 ([Name]) VALUES
('Z'),
('Y'),
('X'),
('W'),
('V');
SELECT T1.Id, T2.[Name]
FROM @Table1 T1
FULL OUTER JOIN @Table2 T2 ON 0 = 1;
Run Code Online (Sandbox Code Playgroud)
输出:
Id Name
-----------------
1 NULL
2 NULL
3 NULL
4 NULL
5 NULL
NULL Z
NULL Y
NULL X
NULL W
NULL V
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
62 次 |
最近记录: |