![]() |
1
3
另一种方法
|
![]() |
2
3
马丁·史密斯的解决方案比下面的好。
|
![]() |
3
1
做了一些测试,结果很奇怪。如果指定
这是有道理的,因为order by应该只在联盟的末尾。但是如果在子查询中使用相同的构造,它会编译!并按预期工作:
最奇怪的事情发生在你只指定了一个
现在它随意点了工会的前半部分,但下半部分是按id点的。这真是出乎意料。同样的事情也发生在
我希望这会给出一个语法错误,但是相反,它命令联合的前半部分。所以看起来
就像Chris Diver最初发布的那样,摆脱困惑的一个好方法就是不要依赖
示例数据:
|
![]() |
4
0
这样的方法应该有用:
另外,使用UNION ALL将提供更好的性能,因为db不会费心检查结果中的重复项(在这个查询中不会有重复项)。 |
![]() |
John D · 需要为NULL或NOT NULL的WHERE子句 5 月前 |
![]() |
Marc Guillot · 记录值时忽略冲突 6 月前 |
![]() |
Fachry Dzaky · 正确使用ROW_NUMBER 6 月前 |
![]() |
TriumphTruth · 从满足特定条件的数据集中选择1行 6 月前 |