CQL の基本は

すごい簡単。ただし、SQL ライクなのは構文だけだと考えておいた方がいいかもしれない。
僕なりの言葉でまとめてみる。(つっこみ大歓迎)

  • SELECT 節では、分析の視点を決める
  • FROM 節 (または OUT OF 節) では、分析の対象を決める
  • WHERE 節では、分析の方法を決める
  • ORDER BY 節では、分析結果に対する序列を決める


[SELECT 節]
分析の視点、つまり何について診るのか。
フィールド、メソッド、名前空間、型のいずれかとなる。


[FROM 節]
分析の対象、つまり誰を診るのか。
アセンブリ名前空間、型の単位で名前を指定できる。複数指定可能だが、異なる単位を混在させることは不可。
省略した場合は、NDepend プロジェクトで分析対象として指定されている全てのアセンブリが対象となる。
また、FROM 節の代わりに OUT OF 節を使用すると、分析の除外対象を指定できる。


[WHERE 節]
分析の方法、つまりどうやって診るのか。
分析の視点によって、使用できる道具 (変数) が異なる。
AND や OR で複数の条件式を組み合わせることができる。 (ただし、OR の方が評価の優先順位が高く、式を括弧で囲んでも優先順位が変わらない。)
この WHERE 節こそが CQL Query を作成する上で最も重要な箇所となる。


[ORDER BY 節]
分析結果に対する序列、つまりどうやって並べるのか。
分析の視点によって、使用できる道具 (変数) が異なる。


[その他]
WARN IF 節では、警告として報告する条件 (件数、割合) を決める。
あと、SELECT 節では TOP 句が使用でき、分析結果の上位○件だけを出力するといった指定ができる。