我的查询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`
答案 0 :(得分:11)
DISTINCT
必须先行,但它会为您提供所有不同的ItemId
和Size
对。这是你想要的还是你在找别的东西?
答案 1 :(得分:4)
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, '')
答案 2 :(得分:3)
与SELECT关键字一起使用的SQL DISTINCT命令仅检索唯一数据条目,具体取决于您在其后指定的列列表。所以你必须在你的选择查询中使用DISTINCT命令,如下所示
“选择DISTINCT ItemId,来自ItemTilesSizes的大小”
这将从表中选择ItemID和Size的组合中的唯一记录。
答案 3 :(得分:2)
使用
select distinct ItemId, ...