顶行的特定行

时间:2014-03-28 05:10:10

标签: sql sql-server-2008 sql-server-2008-r2

SQl数据库中有一个表格,显示结果如下:

   ID    Name     value

    1    Chips     100

    2    Chocolate   50

    3    Ice Cream   200

    4    Burger      40

但我希望以这种方式显示它:

        Name     value

        Chocolate    50

        Chips       100

        Ice Cream   200

        Burger      40

如何在sql server中执行此操作?

3 个答案:

答案 0 :(得分:0)

您可以使用ID进行如下排序

ORDER BY CASE ID 
    WHEN 2 THEN 1 
    WHEN 1 THEN 2 
    WHEN 3 THEN 3 
    WHEN 4 THEN 4
    ELSE 5
    END 

如果有动态行(很多行),您可以使用如下所示

ORDER BY CASE ID 
        WHEN 2 THEN 1 
        ELSE 2
        END 

else部分将处理剩余的行。

答案 1 :(得分:0)

您可以使用CASE中的ORDER BY来确保name = 'Chocolate'的记录首先出现,其余记录按ID排序。

select name, value
from table1
order by case name
   when 'Chocolate' then -1
   else ID
end

答案 2 :(得分:0)

试试这个

   SELECT * FROM `test` WHERE 1 ORDER BY name =  'Chocolate' DESC