是否正確使用Case來實現在聚合SUM中進行強制轉換或轉換,如果是這樣,那麼實現它們的正確方法是什麼?例如CAST或Convert在SUM和Case內
SUM(CASE WHEN X = 'Y' THEN Z ELSE 0.00 END)
在此如果Z將鑄造或改建而成,它是數據類型的數字,我想將其轉換爲varchar
是否正確使用Case來實現在聚合SUM中進行強制轉換或轉換,如果是這樣,那麼實現它們的正確方法是什麼?例如CAST或Convert在SUM和Case內
SUM(CASE WHEN X = 'Y' THEN Z ELSE 0.00 END)
在此如果Z將鑄造或改建而成,它是數據類型的數字,我想將其轉換爲varchar
如果你想要的是sum
你的價值觀,然後再顯示結果作爲varchar
,你會想要做這樣的:
Cast(Sum(case when x = y then z else 0 end) as varchar(10))
如果cast
首先,你可以從你的sum
得到意想不到的效果,或者得到一個錯誤。例如,試圖執行sum(cast([IntegerColumn] as varchar))
回報:
消息8117,級別16,狀態1,行6 操作數的數據類型爲varchar是和運營商無效。
這正是我想要的,謝謝!我想將結果顯示爲varchar以在其前面添加$ – walangala
@ d_li1121這是客戶端工作。 –
呃,一般不會對varchars進行求和,所以我會把它作爲數字。 –