【发布时间】:2020-04-16 13:56:33
【问题描述】:
Select
CAST(de.ornum AS numeric) + 1 as ornum2
from Cpaym as de
left outer join Cpaym as de1 on CAST(de.ornum AS numeric) = de1.ornum
where ISNUMERIC(de.ornum) = 1
我正在尝试获取缺少的序列号,但出现错误:
消息 8114,级别 16,状态 5,第 1 行将数据类型 varchar 转换为数字时出错。
【问题讨论】:
-
请发布您的架构(表结构、字段定义)。看看这个SO post的答案。
-
对不起,但我不能......表已经填满......一千条记录......并且它的数据类型是 varchar......所以改变数据类型是不可能的。 .. :D
-
@JesunBicar:改变数据类型永远不会是不可能的,除非有人告诉你你没有时间,或者有一些第三方依赖于某种类型的数据。即使您必须保留它 varchar,您仍然可以清理数据,使其全部为数字。
-
是的..我无权更改数据类型..当有人..将一些字符放在序列号上时这是人为错误...-_-跨度>
-
@JesunBicar:您仍然可以清理数据以消除这些字符。我会认真调查的。如果数据是垃圾(garbage-in,garbage-out),数据库将不会非常有效。
标签: sql sql-server