oracle - sql - 添加一个表示两个其他Varchar列的串联的列

78 1

我有一个employees表,我想添加一个第三列,它被称为名为"FullName "的名字和名字的串联。 如何在不丢失前两列中任何数据的情况下完成该任务?

时间: 原作者:

83 1

快速序言:此答案基于此问题与SQL Server相关的原始错误标记。 我不再了解它在 Oracle SQL开发人员中的有效性。


ALTER TABLE Employees ADD FullName AS (FirstName + ' ' + LastName)



虽然在实践中我建议你在 SELECT 中执行该操作。 这有点个人偏好,但我倾向于认为在最终查询中做事比存储额外的计算列更清晰,更易读,更易于维护。

编辑:

这最终被发现为答案,并且由operator作为这篇文章的评论列出。 以下是 Oracle Sql数据库的适当语法。


ALTER TABLE emps MODIFY (FULL_NAME VARCHAR2(50) GENERATED ALWAYS AS (first_name || ' ' || last_name) VIRTUAL); 



原作者:
136 3

如果你在从数据库选择时需要fullname列,那么你可以在创建表employee时创建计算列。

例如:


CREATE TABLE Employee


(


 FirstName VARCHAR(20),


 LastName VARCHAR(20),


 FullName AS CONCAT(FirstName,' ',LastName)


)



INSERT INTO Employee VALUES ('Rocky','Jeo')



SELECT * FROM Employee 



 Output:



 FirstName LastName FullName


 Rocky Jeo Rocky Jeo



原作者:
139 5

这取决于您的目的,是否确实需要向数据库添加新列,或者您只需要根据需要查询"full name"。

要动态查看它,只需运行查询

SELECT firstname + ' ' + lastname AS FullName FROM employees

此外,还可以创建一个简单存储过程来存储它。

原作者:
...