我有一个名为amount的列表。我希望以总共10位数的方式显示它。金额应该是正确的,最后两位显示分数。如果没有美分,则最后两位数应为00 例如: -
Name Amount New Column
---------------------------
aa 287.66 0000028766
bb 66 0000006600
cc 2475.1 0000247510
dd 214 0000021400
答案 0 :(得分:3)
您可以使用
Format(CAST(Amount * 100 as INT), 'D10')
或者
Format(Amount * 100 , '0000000000')
只要你至少参加2012年。
答案 1 :(得分:2)
你可以在sql server中使用right函数,如下所示:
profileImageView
答案 2 :(得分:1)
您可以使用[REPLICATE()] [1]功能。
为了避免小数点,你应该在转换之前转换为整数作为varchar。
DECLARE @MyVal decimal(18,2) = 1252.23; SELECT REPLICATE('0', 10 - LEN(CAST(CAST(@MyVal * 100 AS INT) as VARCHAR(10)))) + CAST(CAST(@MyVal * 100 AS INT) as VARCHAR(10)) GO
| (No column name) | | :--------------- | | 0000125223 |
dbfiddle here
答案 3 :(得分:0)
由于长金额为字符串并且有空格。
main
结果
DECLARE @T TABLE
(
NAME VARCHAR(10) ,
Amount NVARCHAR(254)
)
INSERT INTO @T
( NAME, Amount )
VALUES ( 'aa', N' 287.66' ),
( 'bb', N' 66 ' ),
( 'cc', N' 2475.1 ' ),
( 'dd', N' 214 ' );
WITH CTE
AS ( SELECT name ,
amount ,
IIF(ISNUMERIC(REPLACE(Amount, ' ', '0')) = 1, CONVERT(INT, REPLACE(REPLACE(Amount,
'.', ''), ' ',
'0')), 0) AS NC
FROM @T
)
SELECT name ,
amount ,
FORMAT(NC, '0000000000') [New COLUMN]
FROM CTE