SQL 按临时 "AS" 列排序

SQL Sort by temporary "AS" column

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

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

相同

您也可以按 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