如何在不使用表的情况下在SQL Server中执行连接

l--*_*''' 1 sql sql-server sql-server-2008

我有两个列表,我想看看两个列表没有共同点.例如:

List1:
'a','b','c','123'

List2:
'd','e','f','a','asd','c'
Run Code Online (Sandbox Code Playgroud)

我希望输出为:

'b','123','d','e','f','asd'
Run Code Online (Sandbox Code Playgroud)

像这样的东西?

select * from ('a','b','c','123')
join ('d','e','f','a','asd','c')
on ???
Run Code Online (Sandbox Code Playgroud)

有没有使用表格的纯SQL Server解决方案?

JNK*_*JNK 5

如果您可以控制列表,我只会使它们成为表变量:

DECLARE @a TABLE (str varchar(100))
INSERT INTO @a
VALUES
('a'),
('b')...

DECLARE @b table (str varchar(100))
INSERT INTO @b
VALUES
...

(SELECT str FROM @a
EXCEPT 
SELECT str FROM @b)
UNION
(SELECT str FROM @b
EXCEPT
SELECT str FROM @a)
Run Code Online (Sandbox Code Playgroud)