'='附近的语法不正确。得到错误

时间:2018-05-10 10:32:34

标签: sql-server

SELECT [CountryName] 
FROM [tablename]
ORDER BY [CountryName] = 'India' DESC,
         CountryName ASC

上述查询在SQL中运行良好,但它在Microsoft SQL Server Management Studio中显示语法错误。 SQL Server新手

2 个答案:

答案 0 :(得分:2)

“在sql中正常工作”?它自己的SQL没有做任何事情;我认为你的意思是它在不同的RDBMS上工作正常(哪一个,我不知道)。

假设印度应该处于最底层,那么正确的方法是使用CASE表达式:

SELECT [CountryName] 
FROM [tablename]
ORDER BY CASE [CountryName] WHEN 'India' THEN 0 ELSE 1 END DESC,
         CountryName ASC;

答案 1 :(得分:1)

不太清楚你想要实现的目标......

ORDER BY中不能有谓词。您是否只想选择countryName = 'India'的行 - 那么您需要将其放入WHERE子句 - 而不是ORDER BY

SELECT [CountryName] 
FROM [tablename]
WHERE [CountryName] = 'India'
ORDER BY [CountryName] DESC, CountryName ASC

你说的那个“sql”应该可以正常使用你的代码? SQL只是查询语言 - 被许多数据库系统使用 - 但我很确定你的语法在ANSI / ISO标准SQL中也无效....