Postgres / SQL में दो पूर्णांक का न्यूनतम / अधिकतम कैसे प्राप्त करें?


147

Postgres / SQL में मुझे दो पूर्णांकों की अधिकतम (या न्यूनतम) कैसे मिलती है? पूर्णांकों में से एक स्तंभ मान नहीं है।

मैं एक उदाहरण परिदृश्य दूंगा:

मैं एक स्तंभ (सभी पंक्तियों में) से एक पूर्णांक घटाना चाहूंगा, लेकिन परिणाम शून्य से कम नहीं होना चाहिए। तो, मेरे साथ शुरू करने के लिए:

UPDATE my_table
SET my_column = my_column - 10;

लेकिन यह कुछ मूल्यों को नकारात्मक बना सकता है। मैं (छद्म कोड में) क्या चाहूंगा:

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

Relatedly आप एक संघ डेटा सेट बनाने और उसके बाद कम से कम अधिकतम कि, एसक्यूएल सर्वर में कर सकते हैं 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और leastपोस्टग्रेज में नहीं पता था । इसके बजाय उसका उपयोग करें।


10
यदि आप मानक SQL में प्रतिबंधित हैं तो यह संस्करण उपयोगी है।
डॉन किर्कबी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.