3

私は通常、次のような構成を使用します。

ORDER BY CASE WHEN Location = 'ROOT' THEN '~' ELSE Location END

ASCII環境では、これにより、がのすべてのレコードが最後まで正常にプッシュLocationROOTれますが、他のすべてのレコードは通常どおりにソートされます。これは、「〜」文字が文字セットの終わりに近いために機能します。ただし、ASCIIよりも文字セットが広いデータベースが広く使用されているため、この手法が機能しない場合があると思います。

どのような選択肢がありますか?具体的には、フィールド内の特定の値を持つレコードをリストの最後にプッシュする手法が必要です。

私は主にMSSQLを使用していますが、一般的な手法とOracleで動作する手法にも興味があります。

4

2 に答える 2

5

値を最後までプッシュするには、次のことをLocation = 'ROOT'試してください。

ORDER BY CASE WHEN Location = 'ROOT' THEN 1 ELSE 0 END, Location 
于 2012-09-19T14:46:03.330 に答える
3
ORDER BY CASE WHEN Location = 'ROOT' THEN 1 ELSE 0 END, Location
于 2012-09-19T14:46:06.963 に答える