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
我想按我实际临时创建的列对结果进行排序
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