1

数値に文字よりも低い値を与えながら、SQL ステートメントでソートするにはどうすればよいですか?

例えば:

  • 「iPad Wi-Fi」は「iPad 2 Wi-Fi」の前に表示されます
  • 「iPad 2 Wi-Fi」は「iPad 3 Wi-Fi」の前に表示されます
  • 「iPad 3 Wi-Fi」は「iPhone」の前に表示されます
  • 「iPhone」は「iPhone 2」の前に表示する必要があります
4

2 に答える 2

3

おそらく最も簡単な方法は、別の列を用意して、必要に応じて並べ替える方法で入力することです。

次に、挿入/更新トリガーによって設定されていることを確認して、一貫性を維持してください。

挿入/更新時に個別の列セットを使用することで、この順序の計算コストが毎回ではなく、必要な場合にのみ実行されることを保証できますselect。多くの場合、DBA はより多くの時間を確保するためにスペースを犠牲にします。

また、トリガーを使用すると、ACID プロパティが維持されます。

于 2012-05-31T08:35:42.277 に答える
2
select *
from your_table
order by 
replace(replace(replace(replace(replace(name, '9', '0'), '8', '1'), '7', '2'), '6', '3'), '5', '4') asc
于 2012-05-31T08:38:19.727 に答える