2012-12-05 275 views
0

我已经使用了POPUP LOV心尖顺序按升序排列

select VEN_INVOICE_REFNO as display_value, VEN_INVOICE_REFNO as return_value 
    from VENDORINVOICE 
order by 1 asc; 

我想给我看的值下面的查询显示在数字顺序,即按升序order.i图已经尝试了所有的可能的方式,我知道但它不起作用。

enter image description here

回答

1

它似乎是所在领域的数据类型为字符串,将其转换成数字,然后应用order by

select CAST(VEN_INVOICE_REFNO AS INTEGER) as display_value, VEN_INVOICE_REFNO as return_value 
from VENDORINVOICE 
order by 1 asc; 
+0

它是VARCHAR,因为有时“VEN_INVOICE_REFNO”可以具有比数字 –

+0

感谢其他价值......现在它的工作原理 –

1

试试这个::

select VEN_INVOICE_REFNO as display_value, VEN_INVOICE_REFNO as return_value 
    from VENDORINVOICE 
order by ORDER BY CAST(`display_value` AS SIGNED) 
+0

对不起..一点儿也不作品 –

+0

@MuhammadUsman:请立即检查,已经更新了我的查询 –

1

我记得我有这个问题一次,我最终乘以1

类似的东西(不知道是否会工作,你可能需要投下您它VEN_INVOICE_REFNO到数字)

select (VEN_INVOICE_REFNO * 1) as display_value, VEN_INVOICE_REFNO as return_value 
    from VENDORINVOICE 
order by 1 asc; 
像这样

select CONVERT((VEN_INVOICE_REFNO * 1),UNSIGNED INTEGER) as display_value, VEN_INVOICE_REFNO as return_value 
    from VENDORINVOICE 
order by 1 asc; 
+0

感谢安德鲁您的第一查询工作,但第二个有一些错误..发出右括号..我认为括号是好的 –

0

试试这个

选择VEN_INVOICE_REFNO作为display_value,VEN_INVOICE_REFNO作为return_value 来自VENDORINVOICE order by VEN_INVOICE_REFNO

1

另外这里的解决方案将无法正常工作,如果任何的记录有一个非数字值,所以FWIW这里是一个替代的解决方案:

select VEN_INVOICE_REFNO as display_value, VEN_INVOICE_REFNO as return_value 
from VENDORINVOICE 
order by LPAD(VEN_INVOICE_REFNO,100,' ') asc; 

只要改变100到列的最大尺寸。

但是,如果列中有任何负数或小数(浮点数)值,我的解决方案将不起作用。

+0

...谢谢。我可以有你的Skype ID吗?我在账户中遇到了一些问题,以便我可以在那里与你聊天并与你讨论。 –

+0

当然,但请注意,我按小时收取一对一服务费。而且我的费用相当高,需要提前支付并且不可退还。如果这是可以接受的,请告诉我。 –