前提・実現したいこと
プログラム(※例 JAVA,PHPなど)で使用するSQL文として、
下記(A)(B)どちらのSQL文を使用する方が望ましいのか、理由・ご意見を頂けたら幸いです。
(A)
<メリット>
・SQL文が見やすい
<デメリット>
・DBが変更になった際に、修正が必要
(B)
<メリット>
・DBが変更になった際に、修正が不要
<デメリット>
・SQL文が(A)より見にくい。
前提
・DB変更する予定はない
・複雑なSQL文の場合、IFNULL関数を使用しても良い
発生している問題
単純なSQL文の場合、標準SQL文で書いた方が良いか?
レビューを受けた際に、どちらが良いか激論になった。
その他
・上記「単純なSQL文の場合」といった条件があると、一貫性がなくなる。+線引きが必要になる。
疑問
・開発現場毎に、合わせるべきだろう?
・そもそもどちらでも良い?混在していても良い?
・意識として標準SQL文で書く事を心掛けるべきだろうが、今回の場合どっち?う~んとなる。
補足情報
仮にDB変更になった場合、現状主要DBに関しては置換で一発変換できる。
<Oracle> SELECT NVL(name, 'UNKNOWN') FROM user; <PostgreSQL> SELECT COALESCE(name, 'UNKNOWN') FROM user; <SQL Server> SELECT ISNULL(name, 'UNKNOWN') FROM user;
回答7件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/04 16:56 編集
2020/03/04 18:56
2020/03/05 00:24
2020/03/05 06:09 編集
2020/03/05 14:26