代码之家  ›  专栏  ›  技术社区  ›  MadBoy

MS SQL按案例排序

  •  0
  • MadBoy  · 技术社区  · 16 年前

    DATE 一个是 [Type] PRODUCT . 我需要按日期排序查询,但也要按名称等术语的类型排序 Buy , Transfer In 先出现然后 Transfer Out 和 Sell [类型] 对我来说很重要,因为我遇到了这个案子 出售 甚至在我看到 购买

    SELECT [PRODUCT], [DATE], [TYPE]
    FROM table_name
    ORDER BY [DATE] ASC
    

    有没有办法这样点。名字不必按字母顺序排列。

    垫圈,20100506,出售

    我需要它来买,然后卖。但请记住,买卖只是一个例子,它不会这样命名,所以按字母顺序排序在这里并没有真正的帮助。如果可能的话,我想能够定义类型的顺序。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Martin Smith    16 年前

    如果你只有几个,你可以把逻辑放在案例陈述中

    SELECT [DATE], [TYPE]
    FROM table_name
    ORDER BY [DATE] ASC, 
       CASE WHEN [Type]  IN (`Buy`,'TransferIn') Then 0 Else 1 End ASC
    

    否则,最好创建一个表、视图或TVF来映射类型和排序顺序,然后您就可以加入其中。

        2
  •  0
  •   Tokk    16 年前

    你的意思是这样的:

    SELECT ProductID, Name FROM Production.Product
    WHERE Name LIKE 'Lock Washer%'
    ORDER BY ProductID ;
    

    或者这个:

    SELECT ProductID, Name FROM Production.Product
    WHERE Name LIKE 'Lock Washer%'
    ORDER BY ProductID DESC;
    

    MSDN

    推荐文章