某sql语句查询结果有很多条数据,可以通过sql实现将结果为特定值的排在最前面么?

解决方案 »

  1.   

    order by case when ... end
      

  2.   

    不好意思,基本功不太扎实,能写详细一点么?
    假如查询语句 select * from table1 结果中有个字段为Name,值为张三、李四、王五,
    想按姓名排序,将Name值为王五的排在最前面该怎么写呢?
      

  3.   


    按笔划排是吧order by Name COLLATE Chinese_PRC_Stroke_CS_AS_KS_WS
      

  4.   

    select * from [Table] order by case name when '王五' then 0 else 1 end
      

  5.   


    --多加一列:
    DECLARE @TbTemp TABLE
    (
    ID INT,
    NAME NVARCHAR(1024)
    )
    INSERT INTO @TbTemp 
    SELECT 1,'AA'
    UNION SELECT 2,'BB'
    UNION SELECT 3,'CC'
    UNION SELECT 4,'DD'
    UNION SELECT 5,'Deacen'SELECT * ,(CASE [NAME] WHEN 'Deacen' THEN 0 ELSE 1 END) MyOrder FROM @TbTemp ORDER BY MyOrder
    ID          NAME                                                                                                                                                                                                                                                             MyOrder
    ----------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -----------
    5           Deacen                                                                                                                                                                                                                                                           0
    1           AA                                                                                                                                                                                                                                                               1
    2           BB                                                                                                                                                                                                                                                               1
    3           CC                                                                                                                                                                                                                                                               1
    4           DD                                                                                                                                                                                                                                                               1(5 row(s) affected)