mysql - 在 SQL oracle 中对特定列使用 replace with select 语句

标签 mysql sql oracle replace

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

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

我只想将 PROFESSION 列中的“-”替换为“/”。显示表 INFO 的所有内容并进行上述更改的查询应该是什么?

我试过了:

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

但这行不通。

最佳答案

当您的 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

关于mysql - 在 SQL oracle 中对特定列使用 replace with select 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19941814/

相关文章:

php - 我可以在准备好的语句中参数化表名吗?

oracle - Oracle如何审计某个表的删除操作?

mysql - on 条件与 where 条件

java - 简单的 getColumnName(0) 调用抛出无效的列索引 : getValidColumnIndex

oracle - PL/SQL 中的 BEGIN - END block 原子事务

mysql - 事务和主从复制

mysql - 在 Rails 4.0 中选择标签和多对多关系

php - 使我的 PHP 站点免受黑客攻击

sql - 在 SQL 中将 DateTime 转换为 "n Hours Ago"的最佳方法

sql - 在 Case 语句中使用多个条件