思い立った(他の開発が疲れたとき(^x^))とき、SQL整形の機能を強化しています。
これまた奥の深い世界で、SQLを書く人により流儀やお作法があります。
C# や Java のようにコーディング規約に従って記述することは稀で、少なくとも僕の経験の範囲では、一度も見かけたことがないという・・
※パフォーマンスに考慮して、ウンタラ・・はもちろんありますが。。
例えば、SELECT文の項目の区切りであるカンマ(,)、皆さんはどこに付けますか?
<Aさん>
SELECT
COL1, -- カンマを後に付ける派
COL2
FROM
TABLE1
<Bさん>
SELECT
COL1
,COL2 -- カンマを前に付ける派
FROM
TABLE1
ちなみに僕はAさんと同じで、後ろに付けるタイプです。
この他にも、AND の位置や、JOIN、UNION と流儀を上げだしたら、きりがありません。
そしてすべての流儀に合わせて整形エンジンを組むのはかなり困難です(T^T)
メインの流儀はオプションで設定できるようにしていくつもりですが、そもそもSQLは、自然言語に近く整形が困難な言語ですので、どこまで作り込める(やる気になる)か。。
もう少し精度が上がったら、SQLの整形エンジン自体を、オープンソースか.NET DLLで再利用可能な形で公開しますので、使って頂いて色々叩いてもらいたいなぁと思っています。
さて、話は変わって最後に本日苦労したところ。
<通常のINSERT>
INSERT INTO
TABLE1
(
COL1,
COL2
)
VALUES
(
'AAA',
'BBB'
)
<SELECT INSERT>
INSERT INTO
TABLE1
SELECT
COL1,
COL2
FROM
TABLE2
何故、INSERTで違う記述を可能にしたんだ、ANSIめ(ToT)
0 件のコメント:
コメントを投稿