我使用這個函式從一個字串中提取小數點:
我使用這個函式從一個字串中提取小數點。
ALTER Function [dbo]. [udf_ExtractNumber] (@String nvarchar(256)
RETURNS nvarchar(max)
AS
BEGIN
DECLARE @AlphaNumeric varchar(256)
,@Res varchar(256)
SET @AlphaNumeric = @String
SET @Res = NULL
WHILE (PATINDEX('%[0-9]%'/span>, @AlphaNumeric) > 0 )
BEGIN
如果(PATINDEX('%[0-9]%', @AlphaNumeric) >0 AND PATINDEX('%[0-9]%',@AlphaNumeric) < CHARINDEX(', ', @AlphaNumeric)
BEGIN.
SET @Res = CONCAT(@Res , SUBSTRING(@AlphaNumeric, PATINDEX('%[0-9]%', @AlphaNumeric) , 1 )
SET @AlphaNumeric = RIGHT(@AlphaNumeric, len(@AlphaNumeric)- PATINDEX('%[0-9]%'/span>, @AlphaNumeric)
結束。
ELSE IF (CHARINDEX(', ', @AlphaNumeric) >0 AND CHARINDEX(', ', @AlphaNumeric) < PATINDEX('%[0-9]%'/span>, @AlphaNumeric)
BEGIN
SET @Res = CONCAT(@Res , SUBSTRING(@AlphaNumeric, CHARINDEX(' 。 ', @AlphaNumeric), 1) )
SET @AlphaNumeric = RIGHT(@AlphaNumeric, len(@AlphaNumeric)- CHARINDEX(', ', @AlphaNumeric)
結束。
ELSE IF (PATINDEX('%[0-9]%'/span>, @AlphaNumeric) >0)
BEGIN>
SET @Res = CONCAT(@Res, SUBSTRING(@AlphaNumeric, PATINDEX('%[0-9]%', @AlphaNumeric) , 1 )
SET @AlphaNumeric = RIGHT(@AlphaNumeric, len(@AlphaNumeric)- PATINDEX('%[0-9]%'/span>, @AlphaNumeric)
結束。
ELSE IF (CHARINDEX(', ', @AlphaNumeric) >0 )
BEGIN
SET @Res = CONCAT(@Res, SUBSTRING(@AlphaNumeric, CHARINDEX(' 。 ', @AlphaNumeric), 1)
SET @AlphaNumeric = RIGHT(@AlphaNumeric, len(@AlphaNumeric)- CHARINDEX(', ', @AlphaNumeric)
結束。
END
Return @Res
這樣做很好,輸出正是我想要的。 例如,它將 "adsfadf 18,12 adfasdsfa "轉換為18,12。 然而,當我想處理這個數字時,我不能將其轉換為浮點數。 除法或乘法時,會出現以下錯誤:
轉換時失敗。
將nvarchar值'7,5'轉換為資料型別int時,轉換失敗。
uj5u.com熱心網友回復:
根據Ali Fidenli的意見,我調整了代碼的最后一部分,使其正常作業。謝謝
END
Return replace(@Res,',','. ' )
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/328420.html
標籤:
上一篇:AngularMaterialDatepicker-在輸入欄中手動輸入日期
下一篇:溢位自動不顯示滾動條
