如何按顺序使用in子句?

时间:2016-07-27 14:13:08

标签: sql sql-server

[在此处输入图像说明] [1]

enter image description here

enter image description here

特殊字符会影响我的排序顺序吗?

我尝试在SQL Server中解决此查询[在图像中提供],然后知道in子句不适用于order by

当我尝试按案例解决时,仍然输出错误,因为名为'Desmond Tutu'的人正在显示第一个位置。有谁能告诉我这个的原因。

我通过给出三个不希望的优先级来解决。 任何人都可以帮我解决这个问题。 谢谢!

2 个答案:

答案 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来对其余部分进行排名。