我的一个表中有一个字段,其中包含名称,例如:
Category1 - Label1,
Category2 - Label2,
Category3 - Label3等等。
我创建了另一个字段,我想做一个将所有值复制到新字段的UPDATE,但它们显示为:
组别
产品组别
Category3
这意味着从连字符前面的空格中删除所有内容。
注意:字符串中只有一个连字符可以将Category与Label分开。
答案 0 :(得分:3)
update your_table
set col_new = case when charindex('-', col) > 0
then RTRIM(left(col, charindex('-', col) - 1))
else col
end
答案 1 :(得分:1)
要实现您的目标,您必须使用CHARINDEX()
和LEFT()
sql函数从左侧选择子字符串。然后在新列中设置更新新值
UPDATE tblName
SET updatedColumn = CASE WHEN CHARINDEX('-', columnName) > 0 THEN
RTRIM(LEFT(columnName, CHARINDEX('-', columnName)-1))
ELSE columnName
END