我有一個列(如下所示),其中有字母數字值,我需要對所有的值進行求和。
Percentage
----------
50.6687 percent
36.0178 百分之一 百分之一
33.1196 %
29.7688 百分數 百分數
7.6338 %
97.1024 百分之一 百分之一
40.7949 %
161.56 percent
我嘗試了這段代碼,但最后出現了錯誤
SUM(CAST(S. FIELD_PERCENTAGE AS FLOAT) OVER() [Sum of PERCENTAGE]
該錯誤是
Msg 8114, Level 16, State 5, Line 8
將資料型別nvarchar轉換為float時出錯。
我怎樣才能實作這個預期的結果:
Percentage Sum of Percentage
---------- ----------------
50.6687 percent 456.666[/span
36.0178 percent 456.666[/span
33.1196 percent 456.666[/span
29.7688 percent 456.666[/span].
7.6338 percent 456.666[/span
97.1024 percent 456.666
40.7949 percent 456.666[/span
161.56 percent 456.666[/span
uj5u.com熱心網友回復:
50.6687 percent不是一個有效的數字,所以為了用它來計算,在你的CAST中嘗試TRIM(REPLACE(S.FIELD_PERCENTAGE, '%', ''))
DECLARE @t TABLE(
FIELD_PERCENTAGE varchar(50)
)
INSERT INTO @t VALUES
('50.6687 percent')
,('36.0178%')
,('33.1196%')
,('29.7688%')
, ('7.6338%')
,('97.1024%')
,('40.7949%')
,('161.56%')
SELECT sum(cast(TRIM(REPLACE(S。 FIELD_PERCENTAGE, '%', '') AS FLOAT) ) over() [Sum of PERCENTAGE]
FROM @t s
uj5u.com熱心網友回復:
我使用了下面的組合并取得了結果。
我使用了下面的組合并取得了結果。
SUM(CAST(REPLACE(S. FIELD_PERCENTAGE,'Percent','')AS FLOAT) OVER() AS [Sum of Percentage] 。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/314809.html
標籤:
