Sql 从关联结果中选择不同的值
我试图在我的SQL连接中的某个列中获取唯一值的列表 我的发言如下:Sql 从关联结果中选择不同的值,sql,sql-server-2008,Sql,Sql Server 2008,我试图在我的SQL连接中的某个列中获取唯一值的列表 我的发言如下: select P.column1, A.column2 from Table1 P inner join Table2 A on P.column1=A.column1 WITH CTE AS ( SELECT P.column1, A.column2 FROM Table1 P INNER JOIN Table2 A ON P.column1=A.column1 ) SELEC
select P.column1, A.column2 from Table1 P
inner join Table2 A
on P.column1=A.column1
WITH CTE
AS
(
SELECT P.column1,
A.column2
FROM Table1 P
INNER JOIN Table2 A
ON P.column1=A.column1
)
SELECT DISTINCT Column1,
Column2
FROM CTE
我想得到第1列的不同值的列表。我试过了
Select distinct A.column1 from (select P.column1, A.column2 from Table1 P
inner join Table2 A
on P.column1=A.column1)
但是SQL不喜欢这样。如果不需要,就不要选择column2
select distinct P.column1
from Table1 P
inner join Table2 A
on P.column1=A.column1
或者,如果出于某种未知的原因,您确实需要一个子查询,则需要将其别名
Select distinct s.column1 from (select P.column1, A.column2 from Table1 P
inner join Table2 A
on P.column1=A.column1) s
我可以建议使用CTE代替子查询吗 您可以按如下方式重新编写查询:
select P.column1, A.column2 from Table1 P
inner join Table2 A
on P.column1=A.column1
WITH CTE
AS
(
SELECT P.column1,
A.column2
FROM Table1 P
INNER JOIN Table2 A
ON P.column1=A.column1
)
SELECT DISTINCT Column1,
Column2
FROM CTE
您可以根据需要从CTE中选择任意数量的列