這實際上是一個(不是很優雅的)解決方案,當我試圖從dummy_table和一些模糊的數據總數進行聯合時,將一個float返回到varchar列中的問題的解決方案。SQL Float to Varchar
爲了獲得浮動爲字符串,我用在SQL Server 2008中的以下功能(我發現SO):
str(sum(<float_column>),25,5)
由此得到了大量的前導空格和尾隨零,這是不可取的。 我用下面的字符串來測試用假表的格式(注意,有24位前不顯示):
- 「8.50000」
- 「0.50000」
- 「8.00000」
我用下面的函數來獲得所需的格式:
select replace(rtrim(replace(replace(rtrim(replace(ltrim(
' 8.0000'),'0',' ')),' ','0'),'.',' ')),' ','.') from dummy_table;
這種方式按以下順序進行:
- LTRIM向左微調空白區域。
- 用空格替換全零。
- RTRIM從右側修剪這些空白空間。
- 用零替換所有空格。
- 用空格替換點。
- 修剪右側的所有空間(如果存在,則去掉尾隨點)。
- 用點替換空格(如果存在,將點放在正確的位置)。
如果你們可以想出一個更好的方法來做到這一點,讓我知道!
也許這樣的事情。得到你的錢。用整數部分創建一個變量(轉換爲int應該可以工作。)創建另一個包含小數點右側所有內容的變量。 (使用字符串函數)。使這兩個變量一致。 –
如果你描述了你想要的結果,它會有所幫助。 –