[在此处输入图像说明] [1]
特殊字符会影响我的排序顺序吗?
我尝试在SQL Server中解决此查询[在图像中提供],然后知道in子句不适用于order by
。
当我尝试按案例解决时,仍然输出错误,因为名为'Desmond Tutu'的人正在显示第一个位置。有谁能告诉我这个的原因。
我通过给出三个不希望的优先级来解决。 任何人都可以帮我解决这个问题。 谢谢!
答案 0 :(得分:3)
你没有得到理想结果的原因是你只推动化学和物理到最后,但保持其他未分类 - 如果你没有明确指定顺序,服务器可以自由地返回结果订单可能很实用。请记住,查询的结果是集(或有时是标量值),按定义设置是无序的。
问题陈述是显示1984年获奖者和主题按主题和获胜者名称排序;但最后列出化学和物理。您需要在订购中包含主题和赢家名称。
此外,练习旨在说明如何使用in
子句的布尔返回值来影响顺序,并将正确的查询考虑在内:
SELECT winner, subject
FROM nobel
WHERE yr=1984
ORDER BY subject IN ('Physics','Chemistry'), subject, winner
答案 1 :(得分:0)
您需要对人名进行二级订单....
所以ORDER BY firstclause, secondclause
另外,在CASE中添加一个else来对其余部分进行排名。