If you’re getting an error that reads “Incorrect syntax near the keyword ‘DISTINCT’” when using the DISTINCT
clause in SQL Server, it could be that you’ve put the DISTINCT
clause in the wrong position.
When using the DISTINCT
clause, it must be the first item in the SELECT
list.
Therefore, to fix this error, check the position of the DISTINCT
keyword. If it’s not the first item in the SELECT
list, move it to the front so that it is the first item in the SELECT
list.
Example of Error
Here’s an example of code that produces the error:
SELECT
ProductPrice, DISTINCT VendorId
FROM Products
ORDER BY ProductPrice;
Result:
Msg 156, Level 15, State 1, Line 2 Incorrect syntax near the keyword 'DISTINCT'.
The error doesn’t really explain why there’s a syntax error, just that there is one. But in this case, I know that it’s because the DISTINCT
keyword is in the wrong position.
Solution
We can fix the above error simply by moving the DISTINCT
keyword to the front of the SELECT
list:
SELECT
DISTINCT ProductPrice, VendorId
FROM Products
ORDER BY ProductPrice;
Result:
ProductPrice VendorId ------------ -------- 9.99 1004 10 1003 11.99 1001 12.45 1004 14.75 1001 25.99 1001 33.49 1002 55.99 1003 245 1003
This time the query ran without error.