关键字';附近的语法不正确;与众不同;

本文关键字:语法 不正确 与众不同 关键字 | 更新日期: 2023-09-27 18:22:41

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

SqlCommand myCommand = new SqlCommand("select ItemId,Distinct Size from ItemTilesSizes ",
                                                     myConnection);

我的表名是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`     

关键字';附近的语法不正确;与众不同;

DISTINCT必须排在第一位,但它将为您提供所有不同的ItemIdSize对。这是你想要的,还是你在寻找其他东西?

Distinct需要在SELECT 之后立即进行

SELECT DISTINCT ItemId,
                Size
FROM   ItemTilesSizes  

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

SELECT MAX(ItemId) AS ItemId,
       Size
FROM   ItemTilesSizes
GROUP  BY Size  

尽管从注释中的澄清来看,我只是将其作为单列结果集带回,并在应用程序中进行任何所需的串联。如果必须在SQL中执行,则可以使用XML PATH

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

与SELECT关键字一起使用的SQL DISTINCT命令仅检索唯一的数据项,这取决于您在其后面指定的列列表。因此,您必须在选择查询中使用如下DISTINCT指令

"select DISTINCT ItemId,Size from ItemTilesSizes"

这将从表中同时选择ItemID和Size的唯一记录。

使用

select distinct ItemId, ...