想取商和余数

yandyzg 2013-11-08 10:10:23
select 296/100
想得出结果:商 2 余数 96
...全文
721 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 6 楼 fangxuan 的回复:
[quote=引用 5 楼 yandyzg 的回复:] 一个结果是3,一个结果是2,这为什么。。。如果是#表,怎么样能得出两个正确的结果: 2 96
因为你的sl是money类型,其等价于

DECLARE @a money
set @a=296
select cast((@a/100) as int)//输出3

--要得出2、96,如下:
select cast(sl as int)/100  from #  --输出2
select cast(sl%100 as int) from #  --输出96
[/quote] 这个是好办法,是对的。
  • 打赏
  • 举报
回复
引用 4 楼 yandyzg 的回复:
其实我是有一个不解,我有一个表,如下:

---建表
create table #
(sl money)
---insert data
insert #
select 296

---为什么以下结果不同

select cast(sl/100 as int)  from #
select cast(296.0000/100 as int)
应该是当money类型的值,在进行转化时,会四舍五入,而浮点数类型的值,在转化为int时,不会四舍五入。
-江沐风- 2013-11-08
  • 打赏
  • 举报
回复
引用 7 楼 u012724379 的回复:
select cast(sl/100 as int)  from #
这句话我在sql 2005里没有运行成功!
哈哈,敲错代码了,哈哈!还没见到过这种情况呢,应该是money类型的原因吧!
-江沐风- 2013-11-08
  • 打赏
  • 举报
回复
select cast(sl/100 as int)  from #
这句话我在sql 2005里没有运行成功!
白云任去留 2013-11-08
  • 打赏
  • 举报
回复
引用 5 楼 yandyzg 的回复:
一个结果是3,一个结果是2,这为什么。。。如果是#表,怎么样能得出两个正确的结果: 2 96
因为你的sl是money类型,其等价于

DECLARE @a money
set @a=296
select cast((@a/100) as int)//输出3

--要得出2、96,如下:
select cast(sl as int)/100  from #  --输出2
select cast(sl%100 as int) from #  --输出96
yandyzg 2013-11-08
  • 打赏
  • 举报
回复
一个结果是3,一个结果是2,这为什么。。。如果是#表,怎么样能得出两个正确的结果: 2 96
yandyzg 2013-11-08
  • 打赏
  • 举报
回复
其实我是有一个不解,我有一个表,如下:

---建表
create table #
(sl money)
---insert data
insert #
select 296

---为什么以下结果不同

select cast(sl/100 as int)  from #
select cast(296.0000/100 as int)
-江沐风- 2013-11-08
  • 打赏
  • 举报
回复
引用 2 楼 yandyzg 的回复:
这样只能得出96
select 296/100,296%100; 难道你是想用一个符号一下子输出两个结果吗?
yandyzg 2013-11-08
  • 打赏
  • 举报
回复
这样只能得出96
-江沐风- 2013-11-08
  • 打赏
  • 举报
回复
为什么不用 select 296%100 呢?

34,587

社区成员

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

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