Sql 按偏移量排序
在MySQL查询中,我将如何选择: 所有行,按列名排序 名字大于“f”的应该排在第一位,其余的按字母顺序排列Sql 按偏移量排序,sql,mysql,sql-order-by,Sql,Mysql,Sql Order By,在MySQL查询中,我将如何选择: 所有行,按列名排序 名字大于“f”的应该排在第一位,其余的按字母顺序排列 所以我得到G,H,…,X,Y,Z,A,B,C…,F.也许我遗漏了什么,但它是 SELECT * FROM mytable WHERE name > 'F' ORDER BY name 也许我错过了什么,但它是 SELECT * FROM mytable WHERE name > 'F' ORDER BY name 您可以使用2个select查询创建一个视图 SELECT
所以我得到G,H,…,X,Y,Z,A,B,C…,F.也许我遗漏了什么,但它是
SELECT * FROM mytable WHERE name > 'F' ORDER BY name
也许我错过了什么,但它是
SELECT * FROM mytable WHERE name > 'F' ORDER BY name
您可以使用2个select查询创建一个视图
SELECT * FROM mytable WHERE name > 'F' ORDER BY name
及
并组合结果您可以使用2个select查询创建一个视图
SELECT * FROM mytable WHERE name > 'F' ORDER BY name
SELECT
*
FROM
mytable
ORDER BY
CASE WHEN name > 'F' THEN 0 ELSE 1 END,
name
及
把结果结合起来我想他想要的答案是
SELECT
*
FROM
mytable
ORDER BY
CASE WHEN name > 'F' THEN 0 ELSE 1 END,
name
SELECT * FROM mytable WHERE name > 'F' ORDER BY SUBSTR (name, 1, 1) + 'G'
我想他想要一个像这样的答案
SELECT * FROM mytable WHERE name > 'F' ORDER BY SUBSTR (name, 1, 1) + 'G'
使用MySQL,您可以使用以下较短的代码:
SELECT * FROM tbl ORDER BY name > 'F' DESC, name
G、 哦,我。。。大于F,因此上述条件将导致true,true最后排序,false首先排序,因此只需使用MySQL放置DESC,您可以使用以下较短的代码:
SELECT * FROM tbl ORDER BY name > 'F' DESC, name
G、 哦,我。。。大于F,因此上面的条件将导致true,true最后排序,false首先排序,所以只需将DESC放入即可,不会得到所有的行。我需要以A开头的名字放在zs后面,你不能得到所有的行。我需要在Zsno后面加上以A开头的名字——我35岁,有孩子;不,我35岁,有孩子;有趣的我不知道您可以通过不是查询结果列的函数进行排序。我使用select IF name>='F',0,1作为预排序,并使用它作为排序依据clauseThank you:非常有趣solution@monk.e.boy:在MySQL中,比较结果直接为0和1。这意味着您可以去掉这个案例,按名称进行排序,但我发现这没有那么直观,与其他SQL方言不兼容。@Tomalak同意,这是最可读的解决方案。其他一些是智能的,但混淆了:@DRapp:CASE不是一个函数,它是一个返回值的表达式。你可以按任何值排序,即使是经过计算的。很有趣。。。我不知道您可以通过不是查询结果列的函数进行排序。我使用select IF name>='F',0,1作为预排序,并使用它作为排序依据clauseThank you:非常有趣solution@monk.e.boy:在MySQL中,比较结果直接为0和1。这意味着您可以去掉这个案例,按名称进行排序,但我发现这没有那么直观,与其他SQL方言不兼容。@Tomalak同意,这是最可读的解决方案。其他一些是智能的,但混淆了:@DRapp:CASE不是一个函数,它是一个返回值的表达式。你可以按任何值排序,即使是计算过的。小错误:小错误:我不能让它工作我得到“函数匿名”\u database.SUBSTR不存在”抱歉-我只是做了一些懒惰的键入,这是一个指向你可能如何做的指针。我应该说,对于Oracle,使用ASCII'G'+ASCIISUBSTR name的顺序,1,1我无法让它工作我得到“函数匿名”\u database.SUBSTR不存在”抱歉-我只是做了一些懒惰的键入,这是一个指向如何操作的指针。我应该说,对于Oracle,使用ASCII'G'+ASCIISUBSTR名称的顺序,1,1