在进行城市排序的时候,我希望我指定的10个城市总是在前10位,其它的城市按名称排序,如何实现?

解决方案 »

  1.   

    ORDER BY 
       CAES WHEN 城市 IN('广州','深圳','中山')
               THEN 0
            ELSE 1
       END
      

  2.   

    DECLARE @t TABLE(city varchar(20))
    INSERT @t VALUES('上海')
    INSERT @t VALUES('佛山')
    INSERT @t VALUES('深圳')
    INSERT @t VALUES('广州')
    INSERT @t VALUES('北京')
    INSERT @t VALUES('南京')
    INSERT @t VALUES('中山')SELECT *
    FROM @t
    ORDER BY 
       CASE WHEN city IN('广州','深圳','中山')
               THEN 0
            ELSE 1
       END
    /*
    city
    --------------------
    深圳
    广州
    中山
    上海
    佛山
    北京
    南京(7 行受影响)
    */
      

  3.   

    ORDER BY 
       CASE WHEN 城市 IN('广州','深圳','中山')
               THEN 0
            ELSE 1
       END, 其他排序列
      

  4.   

    ORDER BY CHARINDEX(','+城市+',',',中山,深圳,广州,') DESC
      

  5.   

    ORDER BY CASE WHEN END
      

  6.   

    ORDER BY 
       CASE WHEN 城市 IN('广州','深圳','中山')
               THEN 0
            ELSE 1
       END, 其他排序列