根据数据值以各种方式排序 sql 查询结果

sorting sql query results in various ways depending on data value

给定 sql 查询的以下结果:

1,
4,
Red,
Blue,
3,
Green,
2,
Yellow,
Magneta,
Rubi

我要达到的正确顺序是:

红色、蓝色、绿色、Magneta、Rubi、黄色、1、2、3、4

我一直在尝试以下方法但无济于事,所以如果有人能指出正确的方向

SELECT myCol FROM myTable
ORDER BY
CASE WHEN myCol='Red' then 1
     WHEN myCol='Blue' then 2
     WHEN myCol='Green' then 3 END,
CASE
     WHEN myCol not in ('Red','Blue','Green') and IsNumeric(party_id) = 0 then myCol END ASC,
CASE
     WHEN myCol not in ('Red','Blue','Green') and IsNumeric(party_id) = 1 then CAST(myCol AS INT) END ASC

谢谢!

编辑 1: 我当前订单实际退货:

1,2,3,4, Magneta, Rubi, Yellow, Red, Blue, Green

你可以试试这个

SELECT myCol 
FROM myTable
ORDER BY
    CASE WHEN myCol='Red' THEN 1
        WHEN myCol='Blue' THEN 2
        WHEN myCol='Green' THEN 3 
        ELSE 4
    END,
    CASE
        WHEN myCol NOT IN ('Red','Blue','Green') AND IsNumeric(party_id) = 1 
            THEN CAST(myCol AS INT) 
        ELSE -1 
    END,
    CASE
        WHEN myCol NOT IN ('Red','Blue','Green') AND IsNumeric(party_id) = 0 
            THEN myCol 
    END;