SqlServerでOracleやPostgresでのGreatestに該当する関数が無いので面倒だ。 自作関数を作成しようとしても配列型のパラメータは無い。 「テーブル値パラメータ」を配列のように使用することも可能ではあるが、 そのテーブルを作成し値を入るというのが、これまた面倒。 COALESCE()ではパラメータ数に制限が無いので、同様のパラーメータ型が提供されれば、 事なきを得るのにと思うことしきり。 まあ、そもそもそんなパラメータ型が提供されるときには、greatest()などの関数も一緒に提供される可能性が高い。 そこで自作関数はあきらめて、SQLの記述だけで何とかしてみた。 テーブル値コンストラクターをFROM句の派生テーブルとして使用する。 カラム(A,B,C)を持つテーブルXで、A,B,Cの項目のうち最大値を求める場合 select (select max(item) f