在SQL Server中使用不同于游标的语句

时间:2015-03-04 23:57:38

标签: sql-server sql-server-2008

我有一张包含以下内容的表格:

SQL Table

目前我使用内部光标和外部光标遍历每个不同的(A列)以获取每个Distinct(B列)值。

我很确定在SQL中有更好的方法可以做到这一点,但我仍然不是100%,以下语句会给我结果:

select distinct(columnA), columnB from Table order by columnA

这能保证我(ColumnA,ColumnB)的唯一值吗?

如果是这样,SQL Server是否在ColumnA和columnB上执行distinct,即使我只将它放在columnA上?我不需要对它进行分组吗?

2 个答案:

答案 0 :(得分:2)

您不需要CURSOR。您想要的是ColumnAColumnB的独特组合。 DISTINCT将为您完成。

SELECT DISTINCT ColumnA, ColumnB 
FROM Table 
ORDER BY ColumnA

DISTINCT将在SELECT查询的所有列上执行,您无法将其放在单个列中。

答案 1 :(得分:1)

你几乎在那里,只做一个distinct columnA, columnB from...

像这样:

select distinct columnA, columnB 
from Table 
order by columnA