我在表格中有数据 - > bp如下所示
1 Vendor
2 Customer
3 Transporter
我想要select * from bp order by row value 2,1,3
,结果应该是:
2 Customer
1 Vendor
3 Transporter
答案 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)