はじめに
SQL の取得結果に対する処理で、業務に関係ない点でのレビューポイントをまとめてみました。
取得レコード
レコードがない場合に対して考慮しているか
以下のロジックは注意が必要です。
- 変数ではなく固定列の値を取得している。
- 現在の列番号とその前後の列番号のレコードを比較して処理している。
また、集計関数(count, max)などで値を取得している場合、group by がない場合は、必ず1レコード返ってきますが、group by を使用した場合に対象レコードが0件の場合は、取得結果も0件になります。
select count(*) from T1 where 1=2
count(*) |
---|
0 |
select count(*) from T1 where 1=2 group by T1.ID
count(*) |
---|
取得項目
null を考慮しているか
null をそのまま処理しようとすると、大抵の言語では例外が発生します。
char 項目の空白を考慮しているか
char の項目が空白の場合、桁数分の空白設定されているため、桁数0の文字列と比較すると false になります。
おわりに
SQL そのもののレビューポイントは、以下でまとめましたので、あわせて参考にしていただけたらと思います。
- SQL をレビューする時のポイント
https://qiita.com/yiaowang/items/befb38cfdde198a6bc39