在我们的表中,我们有一个长度为nvarchar(70)的字段,用于存储可以使用SUBSTRING查询的多个值。该字段中已有54个字符,包括最终引用。
字段的开头和结尾字符始终是单引号。
我需要更新该字段,从另一个参考表中添加最多3个字符。我尝试了下面的内容,但是当数字大于9时,它缺少最后一个字符。
update Hermes_Rep.dbo.ActData
set spare6= LEFT(Spare6+space(56),55) +
isnull(YAR.YARPEP,' ') + isnull(cast(YAR.YARSCOR as nvarchar(2)),' ')
+ ''''
FROM Hermes_Rep.dbo.ACTdata
LEFT JOIN KFILDTO_YARPF YAR ON ACTdata.ACNo COLLATE Latin1_General_CI_AS= YAR.YARCUS COLLATE Latin1_General_CI_AS
WHERE DataDate= @ProcessDate
例如,如果我添加的数据是N9'
,那么它可以正常工作,但如果数据是N11'
,那么它只会输入N1那么我在这里做错了什么?
答案 0 :(得分:0)
事实证明问题是由LEFT
函数截断字段引起的:
LEFT(Spare6+space(56),55)
所以我把它改成了
LEFT(Spare6+space(57),57)
现在可行。