导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

问个转换函数问题,搞定马上结贴

bridge05 亿启 开发组长/高级工程师/技术专家  2008-01-07 03:33:57
declare @amount decimal(18, 2)
set @amount = 7.50

select convert(??????, @amount) + 'D'

想得到的结是: 7.5D

如果 @amount = 100.00 则 是 100D

3q
...全文
36 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
bridge05 2008-01-07
有没有直接的函数吗
回复
dawugui 2008-01-07
如果是字符串中存储的数字数据需要去掉小数中的尾部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 行受影响)
回复
dawugui 2008-01-07
就是想取掉小数点后面多余的0?
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告