要这样的查询效果

a2048 2007-06-07 04:47:04
有张表数据如下:

a b
200.23 鼠标
201 光驱

如果没有小数点后面要加二个0
查询后的效果是:
a b
20023 鼠标
20100 光驱

...全文
230 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
daring1981 2008-09-18
  • 打赏
  • 举报
回复
select replace(28.91,'.','')
w75251455 2007-06-07
  • 打赏
  • 举报
回复
这样写没法对~~~
lllyyymmm 2007-06-07
  • 打赏
  • 举报
回复
错了,没写好,如下:
先把a 转为字符型
select 'a'=(case when charindex('.',a)> 0
then substring(a,1,charindex('.',a)-1)+right(a,len(a) - charindex('.',a))
else a+'00' end) ,
b from table
lllyyymmm 2007-06-07
  • 打赏
  • 举报
回复
select 'a'=case when charindex('.',cast(a as varchar(10))) > 0
then substring(cast(a as varchar(10)),1,charindex('.',cast(a as varchar
(10)))-1)
else cast(a as varchar(10))+'00' end ,
b from table
rcshadow 2007-06-07
  • 打赏
  • 举报
回复
上面的错了
rcshadow 2007-06-07
  • 打赏
  • 举报
回复
我不知道列a的数据类型就写了以下代码:
select case when charindex('.',cast(a as decimal(10,2)>0
then cast(a as decimal(10,2)*100
else cast(a as varchar(12))+'00'
end
,b
from table
pandayi 2007-06-07
  • 打赏
  • 举报
回复
select left(a*100,5),b
from #
w75251455 2007-06-07
  • 打赏
  • 举报
回复
^^
bill024 2007-06-07
  • 打赏
  • 举报
回复
create table test(a varchar(10),b varchar(10))
insert test select '200.23','鼠标'
union all select '201','光驱'

select case when charindex('.',a)>0 then a else a+'00' end from test

drop table test

------------
200.23
20100
w75251455 2007-06-07
  • 打赏
  • 举报
回复
dawugui(潇洒老乌龟) 20.231
bill024(咖啡熊) 2000
bill024 2007-06-07
  • 打赏
  • 举报
回复
select case when charindex('.',a)>0 then a else a+'00' end from test
dawugui 2007-06-07
  • 打赏
  • 举报
回复
select replace(cast(cast(a as decimal(18,2)) as varchar(10)) , '.' , '') a , b from tb
li_d_s 2007-06-07
  • 打赏
  • 举报
回复
select a * 100 as a ,b from table
w75251455 2007-06-07
  • 打赏
  • 举报
回复
select left(REPLACE(cast(a as varchar(6)),'.','')+'00000',5),b from #

34,590

社区成员

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

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