让我开始说我是trasactsql和查询的新手,所以请善待。 我有一个数据库,我的产品文件有大约1700条记录,一个字段(名称)有产品代码,一个空格,然后是我的产品名称。我有另一个字段(pcode),其中只有产品代码,其中包含数字,可能还有一两个与“name”字段的开头相匹配的字母。我需要删除“名称”中空格前面的所有字符,包括空格。有没有办法删除字符,如果它们匹配“pcode”中的字符?
这是一个例子。
我有什么;
pcode |名称
1234 | 1234小部件
我想要的是什么;
pcode |名称
1234 |插件
有些名称中包含空格。即。 “左手柄按钮侧”或“控制”手柄“
提前致谢。 迈克尔
答案 0 :(得分:1)
在select
中,您可以执行以下操作:
select pcode, substring_index(name, ' ', -1)
. . .
在update
:
update table t
set name = substring_index(name, ' ', -1)
where name like '% %';
如果要更改数据(使用update
),请在执行更新之前检查逻辑(或复制表)。这可能无法达到预期效果,例如,如果名称本身有空格。
答案 1 :(得分:0)
尝试将其导出到MS Excel,例如手动执行。下次在创建SQL数据库时了解12条黄金规则。