Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从关联结果中选择不同的值_Sql_Sql Server 2008 - Fatal编程技术网

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

我试图在我的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
)
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中选择任意数量的列