【发布时间】:2012-10-05 12:46:56
【问题描述】:
我有一个数据库,其中一列包含 2 条数据,例如名字和姓氏。
格式大致为ABC-1D23-4F34
我想复制前 3 个字母 ABC 并将其插入新列。让我们将这些列称为[full_id] 和[ref_id]
从阅读看来 substring 可以做到这一点,但我在这里做错了。
INSERT INTO [ref_id]
SUBSTRING([full_id], 1, 3)
FROM db.Name
感谢您的帮助。
编辑:
更新字符串有效。但我发现我的数据存在问题,而且格式不正确。
有没有办法编写一个案例,如果子字符串不是 3 个字母,它会写入一个空值?
再次感谢,很抱歉有错误的数据。
【问题讨论】:
-
如果子字符串少于3个字母是什么意思?如果 FULL_ID 中的值小于 4 个字符,则 substring(1,3) 将返回整个值。那么,你是说如果FULL_ID的长度小于3,在ref_id列中放入NULL?
-
好的,所以格式应该是
ABC-12D3-34EF但是FULL_ID的一些值是1234567或ab-12345,所以如果开头的字符串不是ABC I想要在REF_ID列中有一个空值。这有帮助吗?
标签: sql sql-server-2008