人間が書くものじゃないものはコンピュータに書かせる

こんな感じで。

$months = @('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec')
$months[-1..-$months.Length] | % {
@"
  , CASE
    WHEN P.$($_.ToLower()) IS NOT NULL
      THEN '$_.'
      ELSE NULL
    END
"@
}

配列の反転には要素数が少ないから上の方法を使ってるけど、普通は Array の Reverse を使うらしい。