- - PR -
OracleとSqlServerのNULL値のOrderByの違い
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2003-03-15 11:35
ファイル:M1
CODE KBN --------------- AAAA null値 AAAA T このようなデータがある場合 SELECT CODE,KBN FROM M1 ORDER BY KBN のSQLを発行するとOracle8とSqlServer2000の 結果が異なります。 <Oracle> CODE KBN --------------- AAAA T AAAA null値 <SQLSERVER> CODE KBN --------------- AAAA null値 AAAA T 現在Oracle->SqlServerに移行作業をしている のですが、このような状態になってしまい困って ます。できればOracleの仕様に合わせるように したいのですが、どのように対処したら良いか 教えてください。 できればSQL文の変更なしで対応したいのですが 無理なのでしょうか? |
|
投稿日時: 2003-03-15 14:45
自己レスです。
Order By句にISNULL関数を使えばなんとかできそうなのですが SELECT CODE,KBN FROM M1 ORDER BY ISNULL(KBN,'ZZZZ') ただ第2パラメータに大きな値を挿入しなければならず どんな値をセットしていけば良いのか分かりません。 あとSQL文をこの形式に全て当てはめていかないとなると かなりの修正が発生してしまうのでSQL文の修正以外で なんとかならないでしょうか? |
|
投稿日時: 2003-03-17 18:59
自己レスです。
やはり、そもそもnull項目において昇順にしたいなどの仕様が 変なのでしょうか?そうでもなければとっくにいろいろな事例 があってもよさそうですもんね。 旧システムの名残なんです(−−# 相変わらず困ってます。 |
|
投稿日時: 2003-03-17 19:30
こんにちわ。返答でなくて申し訳ないのですが。。
なにか方法があるのか気になってながめていたのですがレス付かないですね。 そこでSQL関係のMLに投げてみてはいかがでしょうか? なにか方法がありそうななさそうな・・ http://www.sqlpassj.org/ |
|
投稿日時: 2003-04-07 10:47
解決しているでしょうか。
Oracleで、order by 句に nulls firstを付ければnullが最初に、nulls lastで最後にソートされます。 Oracle9i |
|
投稿日時: 2003-04-07 21:04
米田です。
>そこでSQL関係のMLに投げてみてはいかがでしょうか? >http://www.sqlpassj.org/ まさに、PASSJ のシステム構築ML で話題になっています。 [pml-dev,00378] NULLの並び替え順序 以下です。 http://www.sqlpassj.org/bbs/ml_disp.aspx?forum_id=4¤t_page=2&disp_mode=0&ispre=0&mid=15362 から閲覧できると思います。 順番制御用に1桁足すようなイメージの方法を書きました。 |
1
