Неверный синтаксис рядом с ключевым словом «Отличительный» - PullRequest
6 голосов
/ 05 февраля 2012

Я получаю следующую ошибку в моем запросе System.Data.SqlClient.SqlException: Incorrect syntax near the keyword 'Distinct'.Я искал в Google, но не нашел ни одного полезного решения по моему запросу. Мой запрос:

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`     

Ответы [ 4 ]

12 голосов
/ 05 февраля 2012

DISTINCT должен стоять первым, но он даст вам все отдельные пары ItemId и Size.Это то, что вы хотите, или вы искали что-то еще?

4 голосов
/ 05 февраля 2012

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, '') 
3 голосов
/ 05 февраля 2012

Команда SQL DISTINCT, используемая вместе с ключевым словом SELECT, извлекает только уникальные записи данных в зависимости от списка столбцов, который вы указали после него.поэтому вы должны использовать команду DISTINCT, как показано ниже в вашем запросе выбора

"select DISTINCT ItemId, Size from ItemTilesSizes"

Это выберет уникальные записи из вашей таблицы в комбинации как ItemID и Size.

2 голосов
/ 05 февраля 2012

использование

select distinct ItemId, ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...