4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

身の回りの困りごとを楽しく解決! by Works Human IntelligenceAdvent Calendar 2024

Day 9

ブロックコメントと行コメントを組み合わせたSQLコード切り替えの小技

Last updated at Posted at 2024-12-09

手で流すSQLの記述を、ときどき切り替えたいという場合があります。メンテナンス用にいろいろ用意してあるスクリプトレット、そのうち例えば、

  • いつもは前日まで7日分を対象に処理したいが、例外的に期間を指定したくなることもある

そういうとき、スクリプトレットが自分だけのもので単純なものなら書き換える場所はすぐわかりますし簡単ですが、チームで共有していたり複雑だったりすると、どこを書き換えていいか一目でわからなかったり、わかるけどここだけ書き換えればいいのか自信がもてなかったりします。

さてそういうとき、書き換え用のコードを最初からコメントアウトして埋め込んでおいたりしますよね。しません⋯? ええ、しますよね!

その際の小技。コメントアウトを外すとき、先頭と末尾を両方外さないといけないし現行コードの両側にもコメント記号を入れてコメントアウトするという4段階の手間がある面倒さ、その面倒さと操作ミスリスクがブロックコメントと行コメントの組み合わせで解消できます。

between /* date'2024-12-02' --*/ current_date() - interval '7' day
    and /* date'2024-12-08' --*/ current_date() - interval '1' day

このコメントアウトは、先頭の /* をはずすだけで

between date'2024-12-02' --*/ current_date() - interval '7' day
    and /* date'2024-12-08' --*/ current_date() - interval '1' day

こう!
手軽かつ安全にコードを切り替えられました。

さて、ブロックコメントと行コメントを組み合わせる書き方はSQLに限らずできるわけです。C系のシンタックスの言語なら

p = /* 3.0 //*/ Math.PI;

みたいに書けるわけですが、ただ、プログラミング言語の場合は動作やパラメータを切り替えるための方法はもっとましなものがいくらでもありますからね。この小技を使う機会があるのはSQLスクリプトレットであることがほとんどなんではないかなと。

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?