1

假设我有一个名为 INFO 的下表:

NAME   CITY                PROFESSION
A      New-Mexico          Software-Developer
B      Tampa               Software-Analyst

我只希望将 PROFESSION 列中的“-”替换为“/”。通过上述更改,显示表 INFO 的所有内容的查询应该是什么?

我试过 :

SELECT REPLACE(PROFESSION,'-','/') , * from INFO;

但这不起作用。

4

1 回答 1

6

如果列表中有任何其他列SELECT,则不能使用纯星号 ( *)。您必须使用表名或别名:

SELECT REPLACE(PROFESSION,'-','/') , info.* from INFO;

我猜你想要的是:

SELECT name, city, REPLACE(PROFESSION,'-','/') AS profession FROM info;

测试:

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;

输出:

名称 城市 职业         
-------------------- -------- ---------- ----------
新墨西哥软件/开发者   
B 坦帕软件/分析师

Oracle SQLFiddle

MySQL SQLFiddle

于 2013-11-12T23:18:06.357 回答