フォーム内のテーブルの情報を生成するために使用される sql クエリがあります。操作で情報を整理したい。操作には 1 ~ 30 の番号が付けられていますが、テーブルでそれらを表示すると、すべての操作が 1 の組み合わせで始まり、次に 2 の順に並べられています。フィールドがテキストフィールドであるためだと思いますが、数値で並べ替える方法はありますか?
質問する
99 次
4 に答える
3
これを試して
SELECT * FROM Tablename ORDER BY val(operation)
ソート番号の後に非数値である必要があります
于 2013-05-23T08:56:55.607 に答える
2
推奨される方法は、整数SortOrder
列を作成し、1 から N までの値を希望の順序で入力して並べ替えることです。
Operation
アイテムの最大長までパディングされた列に基づいて、計算された列で並べ替える必要があることに失敗しました。
次のようなものを試してください:
SELECT Operation, Element, Time
FROM YourTable
ORDER BY CInt(Operation) ASC
[注:CInt()
数字にピリオドが含まれている場合、期待どおりに動作しません。CInt(8.6) は 9 に切り上げられます!]
于 2013-05-23T08:42:26.687 に答える
1
あなたの問題は、文字列型の列で結果を並べ替えることです-その場合、ソートアルゴリズムは最初の文字を最初にチェックし、最初の文字のみをチェックするため、「5 H ...」は「12 S ...」の後に来ます2番目の文字に移動するのと同じです...
ソートを正しく行うには、追加の列 (int または数値) でダイの partID を選択し、partID で並べ替えます。
于 2013-05-23T08:45:44.467 に答える
0
たとえば、次のように、新しい列を含めて並べ替えることができます。
SELECT Operation, Element, Time, Qty, Mid(Operation, 1, 2) AS Order
FROM YourTable
ORDER BY Order ASC
注: 数値が 2 桁を超える場合、これはあまり大きくなりません。スペース文字の最初の文字を選択してから注文する必要があります。何かのようなもの:
SELECT Operation, Element, Time, Qty, Mid(Operation, 1, Instr(Operation, " ")) AS Order
FROM YourTable
ORDER BY Order ASC
于 2013-05-23T08:43:01.433 に答える