TSQL Distinct不起作用

时间:2016-01-07 05:11:17

标签: sql sql-server tsql distinct

我有以下查询,并尝试使用DISTINCT关键字为每个GLOBAL_CONTENT_ID保留唯一值。不幸的是我不能让它发挥作用。

SELECT DISTINCT 
    CD.GLOBAL_CONTENT_ID, CD.DOWNLOAD_ID, PA.PHYSICAL_ASSET_ID
FROM 
    [CONTENT_DOWNLOAD] CD 
INNER JOIN 
    PHYSICAL_ASSET AS PA ON CD.GLOBAL_CONTENT_ID = PA.GLOBAL_CONTENT_ID
WHERE 
    CD.UPC = '00600753515501'
ORDER BY 
    CD.GLOBAL_CONTENT_ID

enter image description here

有什么想法吗?

由于

2 个答案:

答案 0 :(得分:3)

DISTINCT关键字将确保结果集中不会出现重复的记录。但是,如果这些记录中的值组合不同,则无法保证给定列不能跨多个记录具有重复值。

获取不同GLOBAL_CONTENT_ID值的一个选项是使用以下查询:

SELECT DISTINCT CD.GLOBAL_CONTENT_ID
FROM [CONTENT_DOWNLOAD] CD 
INNER JOIN PHYSICAL_ASSET AS PA ON CD.GLOBAL_CONTENT_ID = PA.GLOBAL_CONTENT_ID
WHERE CD.UPC = '00600753515501'
ORDER BY CD.GLOBAL_CONTENT_ID

答案 1 :(得分:1)

DISTINCT适用于SELECT子句中的每一列,而不仅仅是一列。如果其中一列具有不同的值,则该行被视为不同,并作为另一行返回。在您的查询中,您包含'PHYSICAL_ASSET_ID',其中每行具有不同的值,这就是您获得多行的原因。