4

我想按我实际临时创建的列对结果进行排序

SELECT A, B, @MID(C,2,2) as X FROM foobar ORDER BY X DESC

我知道这可以在MySQL中使用,但在 SQL (SQLBase) 中无法使用。

有什么建议么?

我试过了:

SELECT A, B, @MID(C,2,2) as X FROM foobar ORDER BY @MID(C,2,2) DESC

结果Invalid Columnname与使用相同ORDER BY X

4

1 回答 1

4

您也可以按列排序ordinal。但请记住,如果查询被修改,则ORDER BY需要检查子句以确保它在正确的列上排序。这应该适合你:

SELECT A, B, @MID(C,2,2) as X 
FROM foobar 
ORDER BY 3 DESC

另一种选择是使用子查询:

SELECT A, B, X
FROM
(
    SELECT A, B, @MID(C,2,2) as X 
    FROM foobar 
) AS S
ORDER BY X DESC
于 2015-11-12T14:51:32.023 回答