类型转换失败

时间:2016-06-01 16:19:57

标签: sql ms-access access

我有一张看起来像这样的表:

enter image description here

空字段可以为null或空字符串,我不确定。 我想将 firstName 字段更新为名称字段中的所有字符,直到 - ,无论名字是空的还是没有。更新前的内容并不重要。

我尝试了以下查询但没有成功:

update table1
set firstname= Left([Name],InStr(1,[Name],"-")-1)

但我在两条记录上收到转换错误。

我试过了:

update table1
set firstname= iif(name is null,firstname,Left([Name],InStr(1,[Name],"-")-1))  

但我仍然有错误。

为什么会发生这种情况以及如何解决?

2 个答案:

答案 0 :(得分:2)

您收到错误的原因是您不能对空值使用字符串函数。首先,您需要将Null变为空白,然后提取名称。 IIf(IsNull([Name]),"",Left([Name],InStr(1,[Name],"-")-1))

这应该阻止类型转换

答案 1 :(得分:0)

webaddress字段是什么?

从您上面的表格中可以看出:

更新table1 set name = iif(name为null,null,Left([Name],InStr(1,[Name],“ - ”) - 1))