कॉलम के लिए न्यूनतम और अधिकतम मान
स्ट्रिंग्स को जोड़कर, उन्हें पंक्तियों में विभाजित करके और फिर सही मान लौटाकर कॉलम के लिए न्यूनतम और अधिकतम मान वापस करने के लिए एक फ़ंक्शन बनाना
जानकारी
ये फ़ंक्शन एक संक्षिप्त पाठ स्ट्रिंग के भीतर न्यूनतम और अधिकतम मान लौटाएंगे।
इसका उपयोग करने के लिए आपको उन मानों को बनाना होगा जिन्हें आपको पार्स करने की आवश्यकता है, और टेक्स्टटॉरो फ़ंक्शन भी है क्योंकि हम स्ट्रिंग को पंक्तियों में परिवर्तित कर देंगे और प्रासंगिक मान को वापस पार्स करेंगे।
मूल रूप से केवल इंटीजर के लिए, हमने स्ट्रिंग्स के लिए भी न्यूनतम और अधिकतम जोड़ा।
स्ट्रिंग फ़ंक्शंस के साथ आपको संयोजन को बदलने और इसे शीर्ष पर बदलने की आवश्यकता हो सकती है यदि आप केस संवेदनशील की तलाश में हैं।
SQL Code - MAX
CREATE FUNCTION [dbo].[GetStrMAX_INT](@Delim NVARCHAR(1),@Str NVARCHAR(200)) RETURNS INT AS BEGINDECLARE @RS INTSET @RS=(SELECT MAX(CONVERT(INT,REPLACE(WordStr,@Delim,'')))FROM Utilities.dbo.TextToRows(@Delim,@Str)WHERE ISNUMERIC(WordStr)=1)RETURN @RSENDGOSELECT dbo.GetStrMAX_INT(',','1,2,3,4,5,a')
SQL Code - MIN
CREATE FUNCTION [dbo].[GetStrMIN_INT](@Delim NVARCHAR(1),@Str NVARCHAR(200)) RETURNS INT AS BEGINDECLARE @RS INTSET @RS=(SELECT MIN(CONVERT(INT,REPLACE(WordStr,@Delim,'')))FROM Utilities.dbo.TextToRows(@Delim,@Str)WHERE ISNUMERIC(WordStr)=1)RETURN @RSENDGOSELECT dbo.GetStrMIN_INT(',','1,2,3,4,5,a')
We've got strings covered too...
ALTER FUNCTION [dbo].[GetStrMAX](@Delim NVARCHAR(1),@Str NVARCHAR(200)) RETURNS NVARCHAR(100) AS BEGINDECLARE @RS NVARCHAR(100)SET @RS=(SELECT MAX(CONVERT(NVARCHAR(100),REPLACE(WordStr,@Delim,'')))FROM Utilities.dbo.TextToRows(@Delim,@Str))RETURN @RSENDGOALTER FUNCTION [dbo].[GetStrMIN](@Delim NVARCHAR(1),@Str NVARCHAR(200)) RETURNS NVARCHAR(100) AS BEGINDECLARE @RS NVARCHAR(100)SET @RS=(SELECT MIN(CONVERT(NVARCHAR(100),REPLACE(WordStr,@Delim,'')))FROM Utilities.dbo.TextToRows(@Delim,@Str))RETURN @RSENDGO
Testing
SELECT dbo.GetStrMAX_INT(',','1,2,3,x,5,a') --5SELECT dbo.GetStrMIN_INT(',','1,2,3,x,5,a') --1SELECT dbo.GetStrMAX(',','1,2,3,x,5,a') --xSELECT dbo.GetStrMIN(',','1,2,3,x,5,a') --1