在SQL Server中两次打印相同的行

时间:2017-11-30 05:28:15

标签: sql sql-server

我正在使用此查询

SELECT 
    [SCORECARD_NAME], [SCORE_NAME],
    [TOTAL_ROWS], [VALID_PERCENTAGE], [INVALID_ROWS] 
FROM 
    {table_name}

我得到了两次结果。我不知道为什么会这样发生 这是什么解决方案?

enter image description here

2 个答案:

答案 0 :(得分:2)

如果您想要显示一次具有相同条目的行,请使用distinct

SELECT DISTINCT
    [SCORECARD_NAME], [SCORE_NAME], [TOTAL_ROWS],
    [VALID_PERCENTAGE], [INVALID_ROWS] 
FROM 
    {table_name};

如有任何疑问,请与我联系。

答案 1 :(得分:2)

您可以使用SELECT DISTINCT,或者这是使用带窗口功能的CTE的选项:

;WITH CTE AS (
    SELECT [SCORECARD_NAME], [SCORE_NAME], [TOTAL_ROWS], [VALID_PERCENTAGE],[INVALID_ROWS],
        ROW_NUMBER() OVER (PARTITION BY [SCORECARD_NAME]
                           ORDER BY [SCORECARD_NAME]) AS DuplicateCount
    FROM Table_Name      
)

SELECT * FROM CTE WHERE DuplicateCount = 1;