Postgres / SQLで2つの整数の最小/最大を取得するにはどうすればよいですか?


146

Postgres / SQLで2つの整数の最大(または最小)を見つけるにはどうすればよいですか?整数の1つが列の値ではありません。

シナリオの例を示します。

(すべての行の)列から整数を減算したいのですが、結果がゼロ未満であってはなりません。だから、最初に、私は持っています:

UPDATE my_table
SET my_column = my_column - 10;

しかし、これはいくつかの価値を否定的にする可能性があります。(擬似コードで)私が欲しいのは:

UPDATE my_table
SET my_column = MAXIMUM(my_column - 10, 0);

これに関連して、あなたは労働組合のデータセットを作成し、そのSQLサーバーで、少なくとも最大ことができstackoverflow.com/questions/124417/...
Kzqai

回答:



17

インラインsqlが必要ですcase

set my_column = case when my_column - 10 > 0 then my_column - 10 else 0 end

max() 集計関数であり、結果セットの行の最大値を取得します。

編集:おっと、知りませんでしたgreatestし、leastpostgresの中で。代わりにそれを使用してください。


10
このバージョンは、標準SQLに制限されている場合に役立ちます。
Don Kirkby 2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.