如何设计数据数类型,使起数字型的小数位在有小数时才显示?
我的数据中,有些有小数,有些又没有小数.
我试了decimal(18, 2)和numeric(18, 2),他们使用得我没有小数的数据后面直接加上了.00我用real可以得到我想要的效果,但是在进行sun运算时,确莫名其妙得多了一串小数.比如表中字段amount,有数据是134、123.43、43、45.33、234、432.31
我要得就是直接这样,不须要再给我加个.00在后面,应该如何设置这个字段。谢谢啦
我的数据中,有些有小数,有些又没有小数.
我试了decimal(18, 2)和numeric(18, 2),他们使用得我没有小数的数据后面直接加上了.00我用real可以得到我想要的效果,但是在进行sun运算时,确莫名其妙得多了一串小数.比如表中字段amount,有数据是134、123.43、43、45.33、234、432.31
我要得就是直接这样,不须要再给我加个.00在后面,应该如何设置这个字段。谢谢啦
如果是字符串中存储的数字数据需要去掉小数中的尾部0, 则参考:
SELECT
col,
col_convert = CASE
WHEN CHARINDEX('.', col) = 0
THEN col
WHEN RIGHT(col, PATINDEX('%[^0]%', REVERSE(col))) LIKE '.%'
THEN LEFT(col, LEN(col) - PATINDEX('%[^0]%', REVERSE(col)))
ELSE LEFT(col, LEN(col) - PATINDEX('%[^0]%', REVERSE(col)) + 1)
END
FROM(
SELECT col = '100' UNION ALL
SELECT col = NULL UNION ALL
SELECT col = '.100' UNION ALL
SELECT col = '.100100' UNION ALL
SELECT col = '0.' UNION ALL
SELECT col = '0' UNION ALL
SELECT col = '100.1010' UNION ALL
SELECT col = '100.0000'
)A-- 结果:
col col_convert
-------- -----------
100 100
NULL NULL
.100 .1
.100100 .1001
0. 0
0 0
100.1010 100.101
100.0000 100(8 行受影响)
--
我看这个不要处理
我的数据中,有些有小数,有些又没有小数.
我试了decimal(18, 2)和numeric(18, 2),他们使用得我没有小数的数据后面直接加上了.00
我用real可以得到我想要的效果,但是在进行sun运算时,确莫名其妙得多了一串小数.
比如表中字段amount,有数据是134、123.43、43、45.33、234、432.31
我要得就是直接这样,不须要再给我加个.00在后面,应该如何设置这个字段。
----我只有在从数据库取出数据在处理了,,
另外,你的需求应该在客户端实现。在软件中对数据格式进行控制就行了。
decimal(18, 2)
numeric(18, 2)real计算出来有问题,以所不能用..