对SQL oracle中的特定列使用select with select语句

时间:2013-11-12 23:05:54

标签: mysql sql oracle replace

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

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

我只希望用'/'替换PROFESSION列中的“ - ”。什么应该是显示表INFO的所有内容的查询,具有上述变化?

我试过了:

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

但这不起作用。

1 个答案:

答案 0 :(得分:5)

如果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;

输出:

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

Oracle SQLFiddle

MySQL SQLFiddle