Aadhar Joshi
Пожалуйста, используйте эту пользовательскую функцию табличного значения, чтобы разделить вашу строку, а затем применить max.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[Split]
(
@String varchar(max)
,@Delimiter char
)
RETURNS @Results table
(
Ordinal int
,StringValue varchar(max)
)
as
begin
set @String = isnull(@String,'')
set @Delimiter = isnull(@Delimiter,'')
declare
@TempString varchar(max) = @String
,@Ordinal int = 0
,@CharIndex int = 0
set @CharIndex = charindex(@Delimiter, @TempString)
while @CharIndex != 0 begin
set @Ordinal += 1
insert @Results values
(
@Ordinal
,substring(@TempString, 0, @CharIndex)
)
set @TempString = substring(@TempString, @CharIndex + 1, len(@TempString) - @CharIndex)
set @CharIndex = charindex(@Delimiter, @TempString)
end
if @TempString != '' begin
set @Ordinal += 1
insert @Results values
(
@Ordinal
,@TempString
)
end
return
end
Чтобы проверить свой код
Select MAX(dbo.Split("YourString"))
Примечание: оператор Cast или Convert требуется в случае строки..
Пожалуйста, проголосуйте, если он удовлетворен..!!
ssd_coolguy
я думаю, что это не одна струна. это 3 разных столбца.
ваша функция верна, когда вводится значение '90,75,80'