首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我在先检查另一个字段之前在where子句中进行了强制转换,它会失败吗?

如果我在先检查另一个字段之前在where子句中进行了强制转换,它会失败吗?
EN

Stack Overflow用户
提问于 2016-07-08 20:11:30
回答 0查看 380关注 0票数 1

我有一个在两个系统之间聚合数据的场景。不幸的是,我在Visual Studio中使用的是表格适配器。

代码语言:javascript
复制
  Select * from prsnpsht where Cast(snp_check as bigint) > 10 and sourcereference Is Null
Union ALL
  Select * from prsnpsht where sourcereference is not null

在上面的例子中,来自第一个系统的snp_check将是全数字的,这将与snp_check正确地转换为bigint,并且我们知道数据来自第一个系统,因为源引用为空。第二个系统在snp_check字段中可以有其他字符,当它尝试强制转换为bigint时,它失败了。

如果我保持查询的结构不变,它是否会在分析源引用条件之前尝试将所有检查强制转换为大整数,或者SQL Server是否足够智能,以便在尝试强制转换snp_check字段之前知道它应该限制数据?

如果这是一个重复的问题,我提前道歉,但如果之前有人回答了,我就找不到了。

EN

回答

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

https://stackoverflow.com/questions/38266315

复制
相关文章

相似问题

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