use*_*677 1 mysql sql oracle replace
假设我有一个名为INFO的下表:
NAME CITY PROFESSION
A New-Mexico Software-Developer
B Tampa Software-Analyst
Run Code Online (Sandbox Code Playgroud)
我只希望用'/'替换PROFESSION列中的" - ".什么应该是显示表INFO的所有内容的查询,具有上述变化?
我试过了 :
SELECT REPLACE(PROFESSION,'-','/') , * from INFO;
Run Code Online (Sandbox Code Playgroud)
但这不起作用.
如果SELECT列表中有任何其他列,则不能使用纯星号(*).您必须使用表名或别名:
SELECT REPLACE(PROFESSION,'-','/') , info.* from INFO;
Run Code Online (Sandbox Code Playgroud)
我猜你想要的是:
SELECT name, city, REPLACE(PROFESSION,'-','/') AS profession FROM info;
Run Code Online (Sandbox Code Playgroud)
测试:
CREATE TABLE info (
name VARCHAR2(20),
city VARCHAR2(20),
profession VARCHAR2(20)
);
INSERT INTO info VALUES ('A', 'New-Mexico', 'Software-Developer');
INSERT INTO info VALUES ('B', 'Tampa', 'Software-Analyst');
COMMIT;
SELECT name, city, REPLACE(PROFESSION,'-','/') AS profession FROM info;
Run Code Online (Sandbox Code Playgroud)
输出:
NAME CITY PROFESSION -------------------- -------------------- -------------------- A New-Mexico Software/Developer B Tampa Software/Analyst