3

以下のように ORDER BY 関数を使用して、顧客 ID で簡単なクエリを注文しています (元々はパーティーの年齢でしたが、うまくいかなかったので、構文が正しいかどうかを確認するために変更しました)。

SELECT   customer_id, customer_name, party_age
FROM     customer
ORDER BY customer_id

レポートはエラーを返しませんが、レポートを表示すると、まったく順序付けされていません。数値も使用してこれを試しました(ORDER BY x)。

誰かが私を正しい方向に導いてくれますか?

編集: Customer_id は VARCHAR2(3) で、001 から 010 の範囲の 10 個のサンプル データ フィールドがあります。以下に示すように int に変換しようとしましたが、結果は同じです。

4

1 に答える 1

8

Order byオラクルで動作します。問題は、得られる結果が期待したものと異なることです。

これの一般的な理由は、文字列として表される数値です。これは、 1, 10, 100, 101, 102 の順序になります。. . 数値の順序を期待している場合、これは正しく見えません。

私の推測では、次のように動作します。

 order by cast(customer_id as int)
于 2012-12-11T15:59:57.010 に答える