首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >视图中的算术溢出

视图中的算术溢出
EN

Stack Overflow用户
提问于 2018-05-07 18:28:51
回答 1查看 113关注 0票数 1

我有一个t视图,在其中我从不同的表中查询数据.我用一个联盟来获取所有的数据。

代码语言:javascript
复制
Create view ViewName
(
   ID,
   Name,
   Budget,
   ...
)
SELECT 
   ID,
   Name,
   Budget,
   ...
 FROM Table1
 UNION
 SELECT
   ID,
   Name,
   Budget,
 FROM Table2

当我查询视图时,会出现以下错误。但是,我可以选择两个语句中的任何一个部分,没有错误。我该如何解决这个问题?

Msg 8115,级别16,状态2,第1行算术溢出错误,将表达式转换为数据类型bigint。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-07 18:31:27

首先,应该通过逐个注释列来识别哪一列会产生错误:

代码语言:javascript
复制
SELECT 
   ID
   --,Name
   --,Budget
   ...
FROM Table1
UNION
SELECT
   ID
   --,Name,
   --,Budget     -- putting commas at beginning is nice in such scenario
FROM Table2

然后,您必须处理隐式转换和不正确的数据类型。

来自友联市

以下是使用UNION组合两个查询的结果集的基本规则:

  • 在所有查询中,列的数目和顺序必须相同。
  • 数据类型必须兼容.

当数据类型不同时,生成的数据类型根据数据类型优先.的规则确定,当类型相同,但精度、比例或长度不同时,则根据用于组合表达式的相同规则来确定结果。

..。

当运算符组合两个不同数据类型的表达式时,数据类型优先级规则指定优先级较低的数据类型转换为具有较高优先级的数据类型。如果转换不是受支持的隐式转换,则返回一个错误。

我的猜测是从VARCHAR转换到BIGINT

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50220404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档