のリストが1,2,3,4,5,K
ありK,1,2,3,4,5
、SQLでこれを行うにはどうすればよいですか?これらの値は、SQLテーブルにある唯一の値です。これはMySQLにありますが、他のデータベースも歓迎されます。
質問する
174 次
4 に答える
5
mysqlには整数関数がないため、次のような操作を行う必要があります。列がvarcharなどであるとすると、次のような単純なものになります。
ORDER BY CASE WHEN field REGEXP '^-?[0-9]+$' THEN field ELSE '0'+field END
于 2012-05-01T20:09:07.227 に答える
1
Oracleでは、次のことができます。
ORDER BY CASE WHEN column='K' THEN 0 ELSE TO_NUMBER(column) END
他のシステムはおそらく同様の構造を持っています。
于 2012-05-01T20:05:46.243 に答える
1
SELECTの結果を並べ替える必要がある場合は、ORDERBYステートメントでカスタムの並べ替えルールを宣言するだけです。
次に例を示します:http ://www.emadibrahim.com/2007/05/25/custom-sort-order-in-a-sql-statement/
アイデアは、各アイテムに独自の優先順位を割り当てることです。
実際のSQLサーバーに依存する可能性があることに注意してください。
于 2012-05-01T20:06:27.460 に答える
0
SQLiteで動作するものは次のとおりです。
select v1.* from (
select t3.*, (case when value = 'K' then '0' else value end) normalized_val
from t3) v1
order by v1.normalized_val;
于 2012-05-01T20:07:02.877 に答える