2

両方の数字を含む列 (x) を持つテーブルがあります。私が使うとき

ORDER BY x DESC 

文字を含むフィールドを一番上に配置します。文字を含むフィールドを最小値として扱うようにするにはどうすればよいですか?

4

4 に答える 4

5

で case ステートメントを使用できますorder by

order by (case when left(x, 1) between '0' and '9' then 0 else 1 end),
         x desc

編集:

上部に文字を含むフィールドが必要な場合:

order by (case when x like '%[a-zA-Z]%' then 0 else 1 end),
         x desc;

上部に文字のみを含むフィールドが必要な場合:

order by (case when x not like '%[^a-zA-Z]%' then 0 else 1 end),
         x desc;

下部に数字のみを含むフィールドが必要な場合:

order by (case when x not like '%[^0-9]%' then 1 else 0 end),
         x desc;
于 2013-07-26T11:53:41.733 に答える
0

ORDER BY x+0 DESC - 動作するはずです

于 2013-07-26T12:10:27.873 に答える
0
select * from Table1 order by 
CAST(x AS UNSIGNED),x;

フィドル

于 2013-07-26T13:35:01.157 に答える