まさるblog

越後在住子持ちプログラマー奮闘記 - Author:まさる(高野 将、TAKANO Sho)

目次

Blog 利用状況

ニュース

著書

2010/7発売


Web掲載記事

@IT

.NET開発を始めるVB6プログラマーが知るべき9のこと

CodeZine

実例で学ぶASP.NET Webフォーム業務アプリケーション開発のポイント

第1回 3層データバインドを正しく活用しよう(前編)

ブログパーツ


書庫

日記カテゴリ

コミュニティ

私のSQLフォーマット

「SQL Fix」を紹介したついでに、私がSQLを書く際のフォーマットをご紹介。

 

基本的なルールは、以下の5つ。

  1. SELECT、FROM、WHEREなどのキーワードは、単品で1行。
  2. 「,」、AND、ORなどの接続系のものは行頭に配置。
  3. 1カラム1行。
  4. SELECT、UPDATE ~ SET等の後のカラム列挙はインデントなし。
  5. 副問い合わせなど()で囲まれた箇所は1レベルインデント。

 

具体的な例は以下の通り。(Syntax Hightlighterだとうまく表示できなかったので、ただのpreタグにて)

SELECT
 IV.Col1
,IV.Col2
,IV.ColName
FROM
 (
  SELECT
   T1.Col1
  ,T1.Col2
  ,T2.ColName
  FROM
   Table1 T1
     INNER JOIN Table2 T2 ON
           T2.Col1 = T1.Col1
       AND T2.Col2 = T1.Col2
  WHERE
      T1.Col1 = 'hoge'
  AND (
          @Fuga IS NULL
      OR  T1.Fuga = @Fuga
      )
  ORDER BY
   T1.DispOrder
 ) IV

 

入社後から6年間。色々と試行錯誤してきて、最終的に今の形に落ち着きました。

特に2の接続系のものを行頭に持ってくるというのは、仕様変更でカラム追加となった場合、たとえば「,」を行末にしていると、1行変更1行追加となってしまってどうも嫌だったので、1行追加で済む今の形が気に入っています。

 

例をあげると以下の通り。

 

行末の場合

こんなのに

SELECT
  Col1,
  Col2
FROM
 ~

Col3を追加したい

SELECT
  Col1,
  Col2,  -- 変更
  Col3   -- 追加
FROM
 ~

行頭の場合

こんなのに

SELECT
 Col1
,Col2
FROM
 ~

Col3を追加したい

SELECT
 Col1
,Col2
,Col3  -- 追加
FROM
 ~

 

SQLのフォーマットは、結構人によってまちまちで、それぞれこだわりがあって使っているような気がします。

皆さんはどんなSQLフォーマットを使っていますか?

投稿日時 : 2009年4月12日 23:10

Feedback

# re: 私のSQLフォーマット 2009/04/13 0:55 どんぐま

私も同じ理由で同じようなSQLのフォーマットに落ち着きました。

メリットは変更箇所が少なくて済むのと、
VSSなどで履歴を確認した時に変更箇所がわかりやすいってトコ。
デメリットはSQLが長くなりやすいってトコかな。

# re: 私のSQLフォーマット 2009/04/13 2:49 やじゅ

私も前カンマ派です。
http://blog.yaju.jp/200711/article_5.html

# re: 私のSQLフォーマット 2009/04/13 8:52 中 博俊

前カンマは文字的に気持ち悪いのでやりませんね、
あとカラムのような同じ意味で改行しているモノは頭落としですねー

# re: 私のSQLフォーマット 2009/04/13 21:58 bleis-tift

なんかトラックバックが飛んでないようなので。
http://d.hatena.ne.jp/bleis-tift/20090413/1239604802
こんな感じの規約を使ってます。

# re: 私のSQLフォーマット 2009/04/14 12:28 HiJun

私も、前カンマ派です。

ソフトの改修業務が多いので...

# re: 私のSQLフォーマット 2009/04/16 23:35 まさる

前カンマ派が多いですね。やっぱり改修時の変更行を少なくするのが主な理由ですか。

でも、中さんの
>前カンマは文字的に気持ち悪い
ってのも、なんとなくわかるんだよなぁ。

# Heya! I know this is somewhat off-topic but I needed to ask. Does operating a well-established website like yours require a large amount of work? I am completely new to running a blog however I do write in my diary daily. I'd like to start a blog so I ca 2019/05/07 17:16 Heya! I know this is somewhat off-topic but I need

Heya! I know this is somewhat off-topic but I needed to ask.
Does operating a well-established website like yours require a large amount of
work? I am completely new to running a blog however
I do write in my diary daily. I'd like to start a blog so I can share my
own experience and thoughts online. Please let me know
if you have any kind of recommendations or tips for new aspiring bloggers.

Appreciate it!

# I'm gone to tell my little brother, that he should also pay a visit this blog on regular basis to take updated from hottest reports. 2019/05/17 6:09 I'm gone to tell my little brother, that he should

I'm gone to tell my little brother, that he should also pay a visit this blog on regular basis
to take updated from hottest reports.

# fantastic issues altogether, you simply received a new reader. What could you suggest in regards to your submit that you simply made a few days in the past? Any certain? 2019/05/29 4:09 fantastic issues altogether, you simply received a

fantastic issues altogether, you simply received a new reader.
What could you suggest in regards to your submit that you simply made a few days in the past?

Any certain?

# I like what you guys are up too. Such clever work and coverage! Keep up the superb works guys I've added you guys to my blogroll. 2019/06/01 12:01 I like what you guys are up too. Such clever work

I like what you guys are up too. Such clever work and coverage!
Keep up the superb works guys I've added you guys to
my blogroll.

# Hey there! I realize this is kind of off-topic but I had to ask. Does building a well-established blog like yours require a large amount of work? I'm brand new to running a blog however I do write in my diary daily. I'd like to start a blog so I can sh 2019/08/19 15:04 Hey there! I realize this is kind of off-topic but

Hey there! I realize this is kind of off-topic but I had to ask.
Does building a well-established blog like yours require a large amount
of work? I'm brand new to running a blog however I do write in my diary daily.
I'd like to start a blog so I can share my
personal experience and thoughts online. Please let me know if you have any kind of suggestions or tips for new aspiring blog
owners. Appreciate it!

タイトル
名前
Url
コメント