查询按最后四位数对数据网格列进行排序?

时间:2012-06-15 05:35:43

标签: sql-server winforms ms-access-2007

如何在datagridview中显示降序,顺序必须从最后一个字符开始。

这是我在datagridvie“VehicleNo”中的专栏

前:

1)ap20aa4779

2)ap09ss9999

3)se06ps1136

4)su02rd5544

DESCENDING order必须从最后一个字符开始。

我从db获得以下值: -

1)ap09ss9999

2)su02rd5544

3)ap20aa4779

4)se06ps1136

The database is MSACCESS 2007.

我的一位朋友建议这个问题: -

select VehicleNo from ScooterInOut order by reverse(vehicleNo) desc where TokenStatus=0

它在SQL SERVER上运行良好但不适用于MsAccess

你可以告诉......

提前致谢

3 个答案:

答案 0 :(得分:2)

Right()表达式中使用Access数据库引擎的ORDER BY功能。

SELECT VehicleNo
FROM ScooterInOut
WHERE TokenStatus=0
ORDER BY Right(vehicleNo, 4) DESC;

答案 1 :(得分:0)

 Select VehicleNo
 From tblVehicles
 Order By Convert(int,SUBSTRING(VehicleNo,Len(VehicleNo)-3,4)) Desc

答案 2 :(得分:0)

为什么在获取数据后不对客户端进行排序,即Datagridview。那么你将不会有任何SQL SERVER / MSACCESS / Oracle类的依赖。 查询数据,绑定到DatagridView,然后在网格视图上应用排序。

因此,您可以像这样留下您的查询 -

select VehicleNo from ScooterInOut where TokenStatus=0这是一个非常标准的查询。然后,在绑定数据后,在Datagridview上应用sort

阅读msdn,它包含有关如何实现此目的的所有信息 - http://msdn.microsoft.com/en-us/library/ms171607.aspx

性能担忧 - 我假设您会考虑批量查询,应用分页和东西,如果它是一个大型数据集,那么你可能会想到虚拟化datagridview等等。