рдХреЙрд▓рдо рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рдФрд░ рдЕрдзрд┐рдХрддрдо рдорд╛рди
рдЬрд╛рдирдХрд╛рд░реА
рдпреЗ рдлрд╝рдВрдХреНрд╢рди рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдкрд╛рда рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рднреАрддрд░ рдиреНрдпреВрдирддрдо рдФрд░ рдЕрдзрд┐рдХрддрдо рдорд╛рди рд▓реМрдЯрд╛рдПрдВрдЧреЗред
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЙрди рдорд╛рдиреЛрдВ рдХреЛ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЯреЗрдХреНрд╕реНрдЯрдЯреЙрд░реЛ рдлрд╝рдВрдХреНрд╢рди рднреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рджреЗрдВрдЧреЗ рдФрд░ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдорд╛рди рдХреЛ рд╡рд╛рдкрд╕ рдкрд╛рд░реНрд╕ рдХрд░реЗрдВрдЧреЗред
рдореВрд▓ рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рдЗрдВрдЯреАрдЬрд░ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рднреА рдиреНрдпреВрдирддрдо рдФрд░ рдЕрдзрд┐рдХрддрдо рдЬреЛрдбрд╝рд╛ред
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рд╕рд╛рде рдЖрдкрдХреЛ рд╕рдВрдпреЛрдЬрди рдХреЛ рдмрджрд▓рдиреЗ рдФрд░ рдЗрд╕реЗ рд╢реАрд░реНрд╖ рдкрд░ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдпрджрд┐ рдЖрдк рдХреЗрд╕ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИрдВред
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