Sql 顺序后面跟一个数字
我接受了这个问题 该查询假定将优先处理x='abc'案例。但我真的很困惑为什么会这样?ORDER后面不是跟一个列名或列号吗?此外,我还研究了orderby的语法,但他们没有告诉我这方面的任何信息。我也尝试过类似的方法,但它说:“按术语排列的第一个订单超出范围-应介于1和1之间”:Sql 顺序后面跟一个数字,sql,sqlite,Sql,Sqlite,我接受了这个问题 该查询假定将优先处理x='abc'案例。但我真的很困惑为什么会这样?ORDER后面不是跟一个列名或列号吗?此外,我还研究了orderby的语法,但他们没有告诉我这方面的任何信息。我也尝试过类似的方法,但它说:“按术语排列的第一个订单超出范围-应介于1和1之间”: 那么,谁能解释一下这个问题,或者至少指出一个好的文档?非常感谢。好的,当一个ORDER BY子句后面跟一个数字时,这个数字将被引用到(数字)位置的列中 ORDER BY后跟一个大小写表达式称为条件排序,当x等于abc时
那么,谁能解释一下这个问题,或者至少指出一个好的文档?非常感谢。好的,当一个
ORDER BY
子句后面跟一个数字时,这个数字将被引用到(数字)
位置的列中
ORDER BY
后跟一个大小写表达式
称为条件排序,当x
等于abc
时,每列将获得值0
,当其不等于abc
时,将获得值1
。之后,排序在ASC
中,因此0
将始终优先于1
它将是这样的:
x | y | .... | Here is the new value that will order the query
abc 1 0
ayr 0 1
acz 1 1
.........
所以,基本上这就像生成一个新的值。但它可以和正常的排序结合起来吗?还有,为什么这样一个好的特性没有被正确地记录下来呢?因为它不是标准的SQL,它是一种欺骗排序的方法,当然,它可以,这是一种有效的排序方式:
当x='abc'然后0 else 1 END,x DESC,y ASC…如果你想的话,另一种情况是
@SidGo@SidGo-记录在案。在下的ORDER BY子句中指出,只有当ORBER BY表达式为常量整数(不是函数、字段、表达式或CASE语句)时,位置排序才有效。谢谢。这真的是一个非常有用的功能,我很惊讶在互联网上几乎找不到它。我真的需要找到一个好的文档,以防有更多的用法。@MatBailie-Oh。但我的具体意思是来自SQL教程,因为这是初学者的起点。谢谢你的链接。
SELECT A
FROM B
ORDER BY 2
x | y | .... | Here is the new value that will order the query
abc 1 0
ayr 0 1
acz 1 1
.........