如何在sql中的数字前替换字符

时间:2014-05-02 14:22:15

标签: sql

我有一个表端口,其数据如下:

Name
-------
ADSL 1
ADSL 2
Ethernet 1
Ethernet 2

我希望将数据转换为:

Name
-------
Port 1
Port 2
Port 1
Port 2

我该怎么做

update Port set name =  somereplacmentlogic(name)

谢谢!

2 个答案:

答案 0 :(得分:1)

UPDATE Port SET Name = REPLACE(Name, 'ADSL', 'Port');

UPDATE Port SET Name = REPLACE(Name, 'Ethernet', 'Port');

答案 1 :(得分:1)

仍然不确定,您正在使用什么DBMS,但如果它支持正则表达式,您可以执行以下操作:

SELECT REPLACE(Name, SUBSTR(Name, 1, REGEXP_INSTR( Name, '[0-9]', 1)-1), 'Port ')
 FROM PORT

REGEXP_INSTR(名称,' [0-9]',1)将找到第一个数字字符出现的位置。

SUBSTR(名称,1,REGEXP_INSTR(名称,' [0-9]',1)-1)将从列值的开头返回子字符串,直到数值。而replace将替换字符串中返回的值。