菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
70
0

关于SQLServer中“%”问题

原创
05/13 14:22
阅读数 19891
declare @iqtty float 
    set @iqtty =0.0034
select @iqtty *1000 %10

会报出这样的错误

数据类型 float 和 int 在 modulo 运算符中不兼容。

在网上找到了原因

Transact-SQL 语法约定

语法

dividend % divisor


参数
dividend 
要执行除法运算的数值表达式。dividend 必须为整数和货币数据类型类别中任意一种数据类型的有效表达式,或者为 numeric 数据类型。

divisor 
要除被除数的数值表达式。divisor 必须为整数和货币数据类型类别中任意一种数据类型或者 numeric 数据类型的任何有效表达式。

所以正确的应该是

declare @iqtty float 
    set @iqtty =0.0034
select Convert(numeric(18,5),(@iqtty *1000)) %10

相关:http://www.itpub.net/thread-1932871-1-1.html

发表评论

0/200
70 点赞
0 评论
收藏
为你推荐 换一批