我有一个多语言应用程序的需求,其中搜索显示的列是从配置中提取的,并且可以根据配置对数据进行排序。
问题 1 - 我正在使用这样的 Select 查询:
SELECT *
FROM TABLE
ORDER BY 1 COLLATE SQL_Latin1_General_CP1_CI_AS DESC,
ORDER BY 4 COLLATE SQL_Latin1_General_CP1_CI_AS DESC
我收到以下错误:
表达式类型 int 对于 COLLATE 子句无效。
是否可以在不指定列名的情况下完成这项工作,并且只使用我们编写普通 SQL 查询的方式使用列索引?
问题 2 - 我还需要支持基于整数列的排序,如“ID”
但是我遇到了与问题 1 中提到的相同的错误。是否有任何解决方法可以允许这样做?或者这是我们必须忍受的 SQL Server 限制,即使使用最新版本的 SQL Server 2016?
将不胜感激任何回应/帮助。