sql 如何去掉0

mysmileh 2010-12-28 10:27:10
怎样在sql里面达到以下效果
如果是14.520000 就取14.52
如果是14.500000 就取14.5
如果是14.000000 还是取14
...全文
760 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
luyuwei2008 2010-12-29
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 sych888 的回复:]
cast(id as float)
[/Quote]
正解!!
st13985555264 2010-12-28
  • 打赏
  • 举报
回复


if object_id('tempdb.dbo.#a') is not null drop table #a
go
create table #a (id numeric(8,6))
insert into #a
select 14.520000 union all
select 14.500000 union all
select 14.000000

select cast(id as float) from #a

/*
14.52
14.5
14
*/
rucypli 2010-12-28
  • 打赏
  • 举报
回复
select cast('14.520000' as float)
华夏小卒 2010-12-28
  • 打赏
  • 举报
回复
--> 测试数据: #tb
if object_id('tempdb.dbo.#tb') is not null drop table #tb
go
create table #tb (id numeric(8,6))
insert into #tb
select 14.520000 union all
select 14.500000 union all
select 14.000000

select id=reverse(case when cast(reverse(cast(id as varchar(30)))as decimal(18,6)) <1
then right(reverse(cast(id as varchar(30))),len(reverse(cast(id as varchar(30))))-charindex('.',reverse(cast(id as varchar(30)))))
else right(reverse(cast(id as varchar(30))),len(reverse(cast(id as varchar(30))))-patindex('%[^0]%',reverse(cast(id as varchar(30))))+1)
end )
from #tb

id
------------------------------
14.52
14.5
14

(3 行受影响)
-狙击手- 2010-12-28
  • 打赏
  • 举报
回复
cast(列 as float)
jiao3630 2010-12-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 viqn7qdnt 的回复:]
SQL code

cast(列 as float)
[/Quote]
++
chen_ya_ping 2010-12-28
  • 打赏
  • 举报
回复

declare @num float
set @num=14.520000

select CAST(@num as varchar(20))

set @num=14.500000

select CAST(@num as varchar(20))

set @num=14.000000

select CAST(@num as varchar(20))

billpu 2010-12-28
  • 打赏
  • 举报
回复
转浮点
viqn7qdnt 2010-12-28
  • 打赏
  • 举报
回复

cast(列 as float)
fengyun142415 2010-12-28
  • 打赏
  • 举报
回复
转换为 decimal(10,2) 保留两位小数
yy1987316 2010-12-28
  • 打赏
  • 举报
回复
原来浮点就可以啊,厉害
rainzero 2010-12-28
  • 打赏
  • 举报
回复
转换为浮点数
冬雨在路上 2010-12-28
  • 打赏
  • 举报
回复
cast(num as float)
abuying 2010-12-28
  • 打赏
  • 举报
回复
DECLARE @T TABLE(COL1 NUMERIC(19,3))
INSERT INTO @T
SELECT 12.000 UNION ALL
SELECT 10.300 UNION ALL
SELECT 9.005

SELECT COL1
,CAST(COL1 AS FLOAT)
,CASE WHEN CAST(COL1 AS VARCHAR(30)) LIKE '%.%' THEN
REVERSE(STUFF(REVERSE(CAST(COL1 AS VARCHAR(30))),1,PATINDEX('%[^0]%',REVERSE(CAST(COL1 AS VARCHAR(30))))-1,''))
ELSE
CAST(COL1 AS VARCHAR(30))
END
FROM @T
sych888 2010-12-28
  • 打赏
  • 举报
回复
cast(id as float)

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧