跨 2 个表查找不同的值不起作用
Finding Distinct Values across 2 tables is not working
我有 2 个 table(我只显示了 select 个字段):
Table答:
<LOCATION CODE>
ACT
NSWNS
OSUSA
Parra
Parra
Parra
ACT
ACT
Table B(A查找table):
<CODE> <DESCRIPTION>
ACT Australian Capital Territory
NSWNS New South Whales - North South
OSUSA Overseas - USA
Parra Parramatta
"Description" 是 'text' 类型。
"Code" 属于 'varchar' 类型。
"location" 是 t_code_key.
的一种
我正在尝试对这两个 table 执行连接,以便我从 Table A long 收到 'Code' 项目的唯一列表以及来自 TableB.
我想得到这样的东西:
<CODE> <DESCRIPTION>
ACT Australian Capital Territory
Parra Parramatta
NSW New South Whales
我已经尝试了我写的以下两个查询,但我没有得到任何运气只是错误:
select mp.location, ct.description
from
(select DISTINCT CAST(description AS VARCHAR(MAX)) AS ct FROM code_table)
full outer JOIN
(select DISTINCT location from mailout_profile) as mp
on ct.code = mp.location;
select mp.location, ct.description
from
(select DISTINCT convert(VARCHAR(MAX), description) AS ct FROM code_table)
full outer JOIN
(select DISTINCT location from mailout_profile) as mp
on ct.code = mp.location;
我得到的错误是:
SQL Error [156] [S0001]: Incorrect syntax near the keyword 'full'.
Incorrect syntax near the keyword 'full'.
Incorrect syntax near the keyword 'full'.
希望得到帮助谢谢!! :)
请试试这个:
WITH r1 (loc) AS
(SELECT DISTINCT LOCATION FROM [mailout_profile])
SELECT Code, Description FROM r1
FULL OUTER JOIN [code_table] ct ON r1.loc = ct.Code
您可以使用以下查询来获得所需的结果 -
示例数据
Declare @TableA table
(LocationCode varchar(20))
Insert into @TableA
values
('ACT' ),
('NSWNS' ),
('OSUSA' ),
('Parra' ),
('Parra' ),
('Parra' ),
('ACT' ),
('ACT' )
Declare @TableB table
(Code varchar(20), Description varchar(100))
Insert into @TableB
values
('ACT' , 'Australian Capital Territory' ),
('NSWNS' , 'New South Whales - North South' ),
('OSUSA' , 'Overseas - USA' ),
('Parra' , 'Parramatta' )
查询
select DISTINCT LocationCode, [Description]
From @TableA a inner join @TableB b on a.LocationCode = b.Code
我有 2 个 table(我只显示了 select 个字段):
Table答:
<LOCATION CODE>
ACT
NSWNS
OSUSA
Parra
Parra
Parra
ACT
ACT
Table B(A查找table):
<CODE> <DESCRIPTION>
ACT Australian Capital Territory
NSWNS New South Whales - North South
OSUSA Overseas - USA
Parra Parramatta
"Description" 是 'text' 类型。 "Code" 属于 'varchar' 类型。 "location" 是 t_code_key.
的一种我正在尝试对这两个 table 执行连接,以便我从 Table A long 收到 'Code' 项目的唯一列表以及来自 TableB.
我想得到这样的东西:
<CODE> <DESCRIPTION>
ACT Australian Capital Territory
Parra Parramatta
NSW New South Whales
我已经尝试了我写的以下两个查询,但我没有得到任何运气只是错误:
select mp.location, ct.description
from
(select DISTINCT CAST(description AS VARCHAR(MAX)) AS ct FROM code_table)
full outer JOIN
(select DISTINCT location from mailout_profile) as mp
on ct.code = mp.location;
select mp.location, ct.description
from
(select DISTINCT convert(VARCHAR(MAX), description) AS ct FROM code_table)
full outer JOIN
(select DISTINCT location from mailout_profile) as mp
on ct.code = mp.location;
我得到的错误是:
SQL Error [156] [S0001]: Incorrect syntax near the keyword 'full'.
Incorrect syntax near the keyword 'full'.
Incorrect syntax near the keyword 'full'.
希望得到帮助谢谢!! :)
请试试这个:
WITH r1 (loc) AS
(SELECT DISTINCT LOCATION FROM [mailout_profile])
SELECT Code, Description FROM r1
FULL OUTER JOIN [code_table] ct ON r1.loc = ct.Code
您可以使用以下查询来获得所需的结果 -
示例数据
Declare @TableA table
(LocationCode varchar(20))
Insert into @TableA
values
('ACT' ),
('NSWNS' ),
('OSUSA' ),
('Parra' ),
('Parra' ),
('Parra' ),
('ACT' ),
('ACT' )
Declare @TableB table
(Code varchar(20), Description varchar(100))
Insert into @TableB
values
('ACT' , 'Australian Capital Territory' ),
('NSWNS' , 'New South Whales - North South' ),
('OSUSA' , 'Overseas - USA' ),
('Parra' , 'Parramatta' )
查询
select DISTINCT LocationCode, [Description]
From @TableA a inner join @TableB b on a.LocationCode = b.Code