MS SQL Order BY案例
问题描述:
我有一个3列的查询(为了举例)。一个是DATE
,一个是[Type]
,另一个是PRODUCT
。我需要通过DATE命令查询,但也可以通过输入名称,如Buy
,Transfer In
首先显示,然后显示Transfer Out
和Sell
。的[Type]
顺序对我来说是非常重要的,因为存在这种情况下,我得到Sell
我之前也看到Buy
对同一产品...MS SQL Order BY案例
SELECT [PRODUCT], [DATE], [TYPE]
FROM table_name
ORDER BY [DATE] ASC
有没有办法来订购吧这样。名字不是必须的字母顺序。
例如:
洗衣机,20100506,卖
洗衣机,20100506,购买
,我需要的是,为了买,然后出售。但请记住,买入和卖出仅仅是一个例子,它不会被这样命名,所以按字母顺序排序并不会在这里帮助。我希望能够定义类型的顺序,如果可能的话。
答
如果你只有几个你可以把逻辑case语句
SELECT [DATE], [TYPE]
FROM table_name
ORDER BY [DATE] ASC,
CASE WHEN [Type] IN (`Buy`,'TransferIn') Then 0 Else 1 End ASC
否则,您最好创建一个表,视图或TVF来映射可以加入的类型和排序顺序。
将立即测试;-) – MadBoy 2010-08-27 10:36:24
经过测试,它似乎工作!再测试一下,看看我是不是会被其他情况下的巴士撞上;)非常感谢 – MadBoy 2010-08-27 10:39:46