我需要将一列的一部分复制到另一列。分隔符是“ - ”。我不想从第一列中删除该部分。
示例:
ItemDesc Part#
Glowear_black-1234
所以它需要看起来像这样:
ItemDesc Part#
Glowear_black-1234 1234
我能找到的唯一SQL查询会从ItemDesc列中删除信息并将其粘贴到Part#中。我仍然需要第一列中的“1234”。此外,并非所有ItemDesc都有“ - ”(这很好)。
答案 0 :(得分:0)
对于ItemDesc缺少连字符作为分隔符的情况,没有明确说明该怎么做,但这是我的建议。使用substring函数来获取连字符右侧的所有内容,其中右边的所有内容都由连字符的索引加一,以及字符串的长度绑定:
update user.table
set Part# = substring(ItemDesc, (CHARINDEX('-', ItemDesc)+1), LEN(ItemDesc) )
从评论中作出陈述:
UPDATE tblIOT1
SET Part#= Trim(Mid(ItemDesc, InStr(ItemDesc, '-') +1))
where ItemDesc like "*-*"
请注意,我使用的是明星字符,而其他受访者使用百分比字符,或者看起来对指定的MS Access有效here
答案 1 :(得分:0)
在Access SQL中,您可以使用InStr()
在字段中查找“ - ”的位置。然后你可以使用Mid()
返回在该位置后面开始一个字符的子字符串。
请注意,由于名称中包含Part#
字符,因此必须在SQL语句中括起#
。
UPDATE tblIOT1
SET [Part#] =
Mid(ItemDesc, InStr(1, ItemDesc, "-") + 1)
如果ItemDesc
可能为空或包含不带“ - ”的字符串,请添加WHERE
子句以忽略UPDATE
中的那些行。< / p>
WHERE ItemDesc ALike '%-%'