【发布时间】:2015-05-27 14:09:17
【问题描述】:
我的表中有一个数据类型为 varchar(10) 的字段。此字段包含格式化为 varchar 的数值,其唯一目的是用于将两个表连接在一起。一些示例数据是:
AcctNum AcctNumChar
2223333 2223333
3324444 3324444
对于某些记录,表有时会认为此字段 (AcctNumChar) 是数字并且连接无法正常工作。然后我必须使用 Update 语句将值重新输入为 varchar。
有没有办法使用查询来确定字段中是否包含 varchar 或数值?我正在尝试缩小哪些记录有问题,而不必等待其中一位用户告诉我他们的查询没有返回任何命中。
【问题讨论】:
-
但是为什么你将 AcctNum 存储为字符,有时存储为数字?调整你的表定义,问题就会消失!
-
它应该始终是 varchar,但由于某种原因,某些记录加载为数字。甚至不知道它是怎么发生的,但它确实发生了。
-
该列始终为 varchar。但是,如果您将 varchar 字段连接到数字字段,则系统希望将 varchar 转换为数字。我认为这是问题所在。因此,请确保,当您将数字字段连接到此 varchar 字段时,然后将数字字段转换为 varchar。
标签: sql sql-server type-conversion