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.