我在 SharePoint 2007 (MOSS) 中使用 FullTextSqlQuery,需要按两列对结果进行排序:
SELECT WorkId FROM SCOPE() ORDER BY Author ASC, Rank DESC
但是,返回结果时似乎只考虑了 ORDER BY 的第一列。在这种情况下,结果按作者正确排序,而不是按排名。如果我更改顺序,结果将按排名排序,而不是按作者排序。
我不得不求助于我自己对结果的排序,这我不太喜欢。有没有人解决这个问题?
编辑:不幸的是,它也不接受 ORDER BY 子句中的表达式(SharePoint 抛出异常)。我的猜测是,即使查询看起来像合法的 SQL,它也会在提供给 SQL 服务器之前以某种方式进行解析。
我尝试使用 SQL Profiler 捕获查询,但无济于事。
编辑2:最后我使用了单列排序(在我的例子中是作者,因为它是最重要的)并在结果的前N个代码中进行了第二次排序。对项目来说足够好,但留下了笨拙的代码的不好感觉。