0

Apex の POPUP LOV に次のクエリを使用しました

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

図に示されている値を数値順、つまり昇順で表示したいと思います。私が知っているすべての可能な方法を試しましたが、うまくいきません。

ここに画像の説明を入力

4

5 に答える 5

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;
于 2012-12-05T06:44:38.903 に答える
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;
于 2012-12-05T06:38:50.543 に答える
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列の最大サイズに変更するだけです。

ただし、列に負の値または 10 進数 (浮動小数点) の数値がある場合、私のソリューションは機能しません。

于 2012-12-06T07:01:25.710 に答える
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)
于 2012-12-05T06:37:07.843 に答える
0

これを試して

VEN_INVOICE_REFNO の順に VENDORINVOICE から、display_value として VEN_INVOICE_REFNO、return_value として VEN_INVOICE_REFNO を選択します。

于 2012-12-05T06:47:03.813 に答える