我有一个包含3列的查询(为了示例)。一个是DATE
,一个是[Type]
,一个是PRODUCT
。我需要按日期订购查询,但也要按照Buy
之类的名称输入,Transfer In
首先显示,然后Transfer Out
和Sell
。 [Type]
的顺序对我来说非常重要,因为在这种情况下我甚至在看到Sell
相同的产品之前就得到了Buy
...
SELECT [PRODUCT], [DATE], [TYPE]
FROM table_name
ORDER BY [DATE] ASC
有没有办法像那样订购它。名称不是必须按字母顺序排列的。
例如:
洗衣机,20100506,卖
洗衣机,20100506,购买
我需要购买,然后卖出。但请记住,买入和卖出只是一个例子,它不会被命名为这样,因此按字母顺序排序并不会对此有所帮助。如果可能的话,我希望能够定义Type的顺序。
答案 0 :(得分:1)
如果你只有一些,你可以将逻辑放在案例陈述中
SELECT [DATE], [TYPE]
FROM table_name
ORDER BY [DATE] ASC,
CASE WHEN [Type] IN (`Buy`,'TransferIn') Then 0 Else 1 End ASC
否则,您可能最好创建一个表格,视图或TVF来映射您可以加入的类型和排序顺序。
答案 1 :(得分:0)
你的意思是这样的:
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;