SQLSERVR 转换为数字类型numeric时出现算数溢出错误

2023-10-27

SQLSERVR 转换为数字类型numeric时出现算数溢出错误


情况一

在SQLSERVER中,关于数据的计算可能会导致出现如下的错误
在这里插入图片描述

遇到这类问题,一般都是由于结果超过了这个字段的长度
个字段的属性的概念。

create table T1
(
F1 numeric(6,4)
)

其中:
“4”代表是小数位数;
“6”代表的是小数+整数位数
所以,整数位数=6-4=2位

所以正常情况下,当超过3位的整数位数的值更新(插入、修改)到字段中了就会报溢出

在这里插入图片描述

此类情况是针对表级别的,遇到这类情况,可以先看看计算结果再对比一下数据库表结构就可以发现问题并针对解决


情况二


当然,这里再提一个有意思的问题,那就是跟表字段没有关系,如下

SELECT ROUND(0.97,1)

执行也会提示转为数据类型numeric时出现算术溢出错误,原因就是。
当你直接输入一个0.97的以后,数据库会默认他的属性为numeric(2,2)
而当进行了ROUND(四舍五入)操作后,原本的结果应该为1.0,对应的字段属性就变为了numeric(2,1),虽然整体的长度没变,但是整数位数就变大了,导致整数部分溢出。

字段类型长度 总长度 小数位数 整数位数
源字段 Numeric(2,2) 2 2 0
目标字段 Numeric(2,1) 2 1 1

目标字段长度大于源字段

在这里插入图片描述


如果要解决这种问题,那就需要我们解决数据库给这数据定义的默认属性
SELECT ROUND(CONVERT(numeric(3,2),0.97),1)
字段类型长度 总长度 小数位数 整数位数
源字段 Numeric(3,2) 3 2 1
目标字段Numeric(2,1) 2 1 1

目标字段长度小于源字段
在这里插入图片描述

问题得到解决,所以在sqlserver中拼接sql,要留意是否有类似的情况

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQLSERVR 转换为数字类型numeric时出现算数溢出错误 的相关文章

  • 如何从 SQL Server 2005 备份中恢复单个表?

    我已经使用常规 SQL Server 2005 备份命令进行了备份 有没有办法只恢复单个表 而不是整个数据库 将整个数据库恢复到另一台机器 或临时数据库 然后复制表对我来说似乎是最简单的
  • 区分大小写变得疯狂

    我有一个数据库 我正在尝试执行以下查询 SELECT COUNT FROM Resource WHERE Name LIKE ChinaApp SELECT COUNT FROM Resource WHERE Name LIKE China
  • BCP 语法问题

    总之 我正在尝试编写一个可以每天从 SQL Server 2008 实例上的批处理文件运行的查询 我以前从未使用过 BCP 但在查看了一些在线示例后 我尝试创建一个真正的基本查询来测试计算机上的进程和权限 然后再将选择查询扩展到所需的数据集
  • RedGate ReadyRoll 的替代品了吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一种经济实惠的 RedGate ReadyRoll 替代方案 以实现 SQL 的持续部署 我
  • Google BigQuery:如何使用 SQL 创建新列

    我想在不使用旧版 SQL 的情况下向现有表添加一列 基本的 SQL 语法是 ALTER TABLE table name ADD column name datatype 我格式化了 Google BigQuery 的查询 ALTER TA
  • MySQL中Join同表临时表

    我喜欢在 MySQL 中加入一个失败的临时表 这个想法很简单 CREATE TEMPORARY TABLE temp table LIKE any other table srsly it does not matter which tab
  • 查询查找表中姓名和号码之间的重复项

    SELECT count lower name number FROM tbl GROUP BY lower name number HAVING count gt 1 输入表1 slno name number 1 aaa 111 2 A
  • 查找一列中具有相同值而另一列中具有其他值的行?

    我有一个 PostgreSQL 数据库 将用户存储在users他们参与的表格和对话conversation桌子 由于每个用户可以参与多个对话 并且每个对话可以涉及多个用户 因此我有一个conversation user链接表来跟踪哪些用户正
  • SQL Server 数据库中的表具有互斥外键的最佳实践

    在这里 我正在寻找针对以下问题的优缺点的最佳解决方案 Entity1 E1 pk 与其他不同的列 Entity2 E2 pk 与其他不同的列 Entity3 E3 pk 与其他不同的列 我需要创建之间的关系Entity1 and Entit
  • Sql 查询抛出标识符太长。最大长度为 128

    我正在处理一个简单的更新查询 在执行查询时看到以下错误 我非常清楚 这根本不应该是一个长度问题 可能是什么问题 Error 以identifier开头的标识符太长 最大长度为 128 我的查询 update dbo DataSettings
  • 如何在 where 子句中使用别名? [复制]

    这个问题在这里已经有答案了 可能的重复 在 WHERE 子句中引用列别名 https stackoverflow com questions 8370114 referring to a column alias in a where cl
  • 导出 Azure SQL 数据库时出现错误 SQL71501

    导出 Azure SQL 数据库时出现奇怪的错误 导出一直工作正常 直到最近发生一些架构更改 但现在出现错误 SQL71501 该数据库是V12 兼容性级别130 尽管master数据库仍兼容级别 120 该问题似乎是由一个新的表值函数引起
  • SQL 删除自动命名约束

    我使用脚本在表上创建了一些约束 但未指定约束名称 结果 我最终受到了像这样的限制FK DOC OBGS kntr 54E63309例如 是否可以在不指定确切的约束名称的情况下删除该约束 例如 类似这样的东西 不起作用 ALTER TABLE
  • 如何授予用户访问 SQL Server 中的 sys.master_files 的权限?

    我需要授予数据库用户读取权限sys master files桌子 我怎样才能做到这一点 目前用户拥有以下权限 Calling SELECT on sys master files返回空结果 我还使用以下命令测试了相同的查询sa用户按预期工作
  • SQL 解析键值字符串

    我有一个像这样的逗号分隔字符串 key1 value1 key2 value2 key3 value3 key1 value1 1 key2 value2 1 key3 value3 1 我想将它解析成一个如下所示的表 Key1 Key2
  • 寻找多列索引的最佳顺序

    假设我有一个包含两个索引的表 一个位于 a 列 一个位于 a b 和 c 列 我注意到 根据索引定义中列的顺序 MySQL 可能最终使用单列索引而不是多列索引 即使多列索引中的所有三列都在 ON 中引用JOIN 的一部分 这有点引出了一个问
  • 使用 SQL Server 作为具有多个客户端的数据库队列

    给定一个充当队列的表 如何最好地配置表 查询 以便多个客户端同时处理队列 例如 下表指示了工作人员必须处理的命令 当worker完成后 它会将处理后的值设置为true ID COMMAND PROCESSED 1 true 2 false
  • C# 事务中的事务

    我正在使用 C 将发票的平面文件导入到数据库中 如果遇到问题 我将使用 TransactionScope 回滚整个操作 这是一个棘手的输入文件 因为一行不一定等于一条记录 它还包括链接记录 发票将包含标题行 行项目和总计行 有些发票需要跳过
  • OVER ORDER BY 中的多个列

    有没有办法在 OVER ORDER BY 子句中指定多个列 SELECT ROW NUMBER OVER ORDER BY A Col1 AS ID FROM MyTable A 上面的方法工作正常 但尝试添加第二列不起作用 SELECT
  • SQL:两个没有完整列匹配的表的并集

    我有一个table A其中有一组列A1 A2和一个具有一组列的 table bB1 B2 碰巧的是A2 B1但其余列不匹配 也不应该匹配 我想附加表格 所以我使用UNION ALL 对于不匹配的列 我使用null as COLUMN NAM

随机推荐

  • Ubuntu更改下载源

    Ubuntu更改下载源 今天美滋滋的打开ubuntu准备下载一个语言包 对于英语不好的我来说 看全英文版的ubuntu系统太吃力了 感觉系统极其不友好 哈哈 然后准备下在一个语言包 但是下载速度及其的慢 只有十几kb每秒 如果按照这样的速度
  • FastAPI利用装饰器实现定时任务

    因为 FastAPI 本身就是高性能异步框架 所以在不使用任何第三方定时任务模块的情况下 FastAPI 也可以很方便的实现定时任务 创建一个 tasks py 文件 复制下面的装饰器代码 import asyncio from logur
  • MyBatis详细执行流程

    目录 MyBatis详细的执行流程 1 创建加载核心配置文件的inputStream流 1 1 Recourse getResourceAsStream String resource 方法 1 2 getResourceAsStream
  • React中使用CSS样式的五种方法,主流推荐CSS Modules和Styled Components

    前言 由于 React的JSX语法 能在React中使用样式的方式有很多 本文主要介绍在React中经常使用CSS样式的五种方法 1行内样式 2声明样式 3引入样式 4 CSS Modules模块化 5 Styled component 1
  • DolphinScheduler3.0.1(数据质量)

    DolphinScheduler3 0 1 数据质量 Refer 1 data quality jar包修改 1 配置文件修改 2 依赖不明确问题 3 scope多修改问题 2 实现方式 1 Spark提交 2 结构解析 1 图1 2 图2
  • Blender一些建模技巧与应用

    平滑卡线 加线 卡结构线 加线 时 按E均匀线条会使加线与边线均匀对齐 投影切割 投影切割 使用调形后的曲线 放到模型表面上方进行投影切割 投影形状是 曲线范围内所能看到的模型 就是切割后的形状 使用流程 1 调整好曲线与屏幕的角度 想完全
  • 并行计算之OpenMP简介

    OpenMP环境安装 基于ubuntu20 04 sudo apt get update sudo apt get install libomp dev OpenMP概述 面向多线程并行编码的编译指导语句 如 pragma omp para
  • ssh连接远程主机执行脚本的环境变量问题

    近日在使用ssh命令ssh user remote myscript sh登陆到远程机器remote上执行脚本时 遇到一个奇怪的问题 myscript sh line n app command not found app是一个新安装的程序
  • ElasticSearch7之function_socre使用心得

    介绍 1 function score是可以修改查询检索文档的分数 使用function score必须定义 一个查询和一个或多个函数 为查询返回的每个文档计算一个新的分数 function score提供的评分函数 1 weight 设置
  • UReport2 报表设计器 在线表格

    UReport2官网 一 UReport2报表设计器 UReport2是一个开源的可视化报表设计器 功能强大 操作简单 可以实现复杂的报表统计 有各种各样的导出和打印功能 支持导入Excel表格 1 报表设计器 2 设计一个简单的用户列表展
  • ifstream之seekg/tellg

    声明 我个人特别讨厌 收费专栏 关注博主才可阅读等行为 推崇知识自由分享 推崇开源精神 呼吁你一起加入 大家共同成长进步 在文件读写的时候 一般需要借助fstream来进行文件操作 常见的操作有seekg 和tellg 但是这两个函数有一些
  • 机器学习之——单变量线性回归

    线性回归 线性回归 Linear Regression 作为Machine Learning 整个课程的切入例子确实有独到的地方 以简单的例子为出发点 将学习任务的主干串起来 问题的建模可以简单如下图所示 线性回归可以分为单变量线性回归 L
  • media sdk 性能优化

    https software intel com sites default files m 2 0 a 7 9 28439 Intel Media SDK E4 B9 8B E4 BC 98 E5 8C 96 E6 8A 80 E6 9C
  • SQLServer开启远程连接

    一 在需要被远程连接的电脑客户端中打开命令提示符输入 ipconfig 找到IPV4地址 二 在SQLServer配置管理器中找到端口 三 1 打开 控制面板 2 打开 系统和安全 3 打开 WindowDefender防火墙 4 打开 高
  • C#中 Console方法介绍

    一般情况下 我们用来输入信息的方法主要是用到如下四个 1 console log 用于输出普通信息 2 console info 用于输出提示性信息 3 console error 用于输出错误信息 4 console warn 用于输出警
  • 20世纪最好的十大算法、算法笔记(2008-11-15 22:16:57、2011-04-21 19:29:05)

    Algorithm 算法 一词与9世纪的阿拉伯学者al Khwarizmi有关 他写的书 al jabr w al muqabalah 代数学 演变成为现在中学的代数教科书 Ad Khwarizmi强调求解问题的有条理的步骤 20世纪最好的
  • 启动虚拟机异常(完整版)——如果已在 BIOS/固件设置中禁用 Intel VT-x,或主机自更改此设置后从未重新启动,则Intel VT-x处于禁用状态

    创建了Linux虚拟机 点击 开机 之后 报了这个错误 笔记本电脑 我的 联想天逸 笔记本电脑 许多键与其他的 比如 华硕笔记本电脑 不同 想在操作系统中按F2 要Fn加 减音量 才有F2的功能 我将这个思想带到 启动BIOS 中 害惨了我
  • vue 使用 wangeditor 富文本编辑器

    wangeditor 是一个轻量级 web 富文本编辑器 配置方便 使用简单 1 安装 wangeditor 终端安装 wangeditor 库 yarn add wangeditor editor 或者 npm install wange
  • 腾讯云数据库CDB技术演进之路

    IT168 专稿 本文根据 2016 第八届系统架构师大会 微信搜索SACC2013 关注系统架构师大会公众号 现场演讲嘉宾程彬老师分享内容整理而成 录音整理及文字编辑IT168 田晓旭 老鱼 嘉宾简介 程彬 腾讯基础架构部数据库研发负责人
  • SQLSERVR 转换为数字类型numeric时出现算数溢出错误

    SQLSERVR 转换为数字类型numeric时出现算数溢出错误 情况一 在SQLSERVER中 关于数据的计算可能会导致出现如下的错误 遇到这类问题 一般都是由于结果超过了这个字段的长度 个字段的属性的概念 create table T1