SQL顺序依据

时间:2011-04-11 11:44:59

标签: sql sql-order-by

我需要按日期订购一张桌子,我不能这样做!! :(

我有一个字段(codigo),如果日期的年份(通过参数传递)小于2010年那么它的组成如下:“FAC-00123-10”,然后我需要通过这个“00123”来订购” ...

否则,如果年份代码大于2010年,则字段(Codigo)创建为“FT 11/123”,然后我需要通过此“123”订购

我该怎么做?!

1 个答案:

答案 0 :(得分:3)

您可以使用case when语句来决定要排序的内容,这会使用一个简单的子字符串,但实际上这可能不够好,您可能需要更好地解析您感兴趣的位。

select * from table order by 
   case when DatePart(year,@date) < 2010 then substring(codigo,4,5)
        else substring(condigo,3,2) end
相关问题