关键字'Distinct'附近的语法不正确

Ali*_*man 6 c# sql-server sql-server-2005

我的查询中出现以下错误System.Data.SqlClient.SqlException: Incorrect syntax near the keyword 'Distinct'.我搜索了谷歌,但根据我的查询找不到任何有用的解决方案.我的查询就是这个

SqlCommand myCommand = new SqlCommand("select ItemId,Distinct Size from ItemTilesSizes ",
                                                     myConnection);
Run Code Online (Sandbox Code Playgroud)

我的表名是ItemTilesSizes,它有两列

ItemId  Size

1   8x13      
1   8x12      
5   8x10      
5   8x12      
5   8x13      
8   10x10     
8   4x4       
9   8x12      
14  8x13      
15  8x10      
15  24x24`     
Run Code Online (Sandbox Code Playgroud)

Mat*_*nen 12

DISTINCT必须先来,但它会让你所有不同的ItemIdSize.这是你想要的还是你在寻找别的东西?


Mar*_*ith 5

Distinct 需要在之后立即去 SELECT

SELECT DISTINCT ItemId,
                Size
FROM   ItemTilesSizes  
Run Code Online (Sandbox Code Playgroud)

如果您希望它仅适用于Size您需要的GROUP BY和定义ItemId应返回哪些可能匹配值的聚合(下面的示例返回最大的值)

SELECT MAX(ItemId) AS ItemId,
       Size
FROM   ItemTilesSizes
GROUP  BY Size  
Run Code Online (Sandbox Code Playgroud)

尽管根据评论中的说明,我只是将其作为单列结果集带回来,并在您的应用程序中进行任何所需的连接。如果您必须在 SQL 中执行此操作,则可以使用XML PATH

SELECT STUFF((SELECT ',' + LEFT(ItemId, 10)
              FROM   ItemTilesSizes
              WHERE  Size = '8x12'
              FOR XML PATH('')), 1, 1, '') 
Run Code Online (Sandbox Code Playgroud)