SELECT [CountryName]
FROM [tablename]
ORDER BY [CountryName] = 'India' DESC,
CountryName ASC
上述查询在SQL中运行良好,但它在Microsoft SQL Server Management Studio中显示语法错误。 SQL Server新手
答案 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中也无效....