自定义排序,按问题排序

时间:2015-05-14 12:53:01

标签: sql sql-server sorting

我在表格中有数据 - > bp如下所示

1   Vendor  
2   Customer    
3   Transporter

我想要select * from bp order by row value 2,1,3,结果应该是:

2 Customer
1 Vendor
3 Transporter

2 个答案:

答案 0 :(得分:1)

由于排序不是字母或数字,并且看起来有点武断,所以使用case语句。但是,这并不支持增长,并且必须在col2中呈现新值时随时更改代码。最好在包含这些值的基表中包含orderBy列。并允许用户指定长期可用性的订单。为什么将用户绑定到特定的订单......看起来很奇怪,但这是实现它的方法。

SELECT * 
FROM bp 
order by CASE when col2='Customer' then 1 
              when col2='Vendor' then 2
              when col2='Transporter' then 3
              else then 4 end;

答案 1 :(得分:0)

试试这个: -

再添加一个列SortBy和添加值像第一个数字一样,第二个数字第二个类型和第三个数字第三个类型。它是一种非常简单的方式。如果记录多,那么你可以用其他方式安排。

1供应商132

2客户213

3转运蛋白321
供应商 - >通过子串(SortBy,1,1)从bp顺序中选择* 客户 - >通过子串(SortBy,2,1)从bp顺序中选择* 转运蛋白 - >通过子串(SortBy,3,1)

从bp顺序中选择*