添加一个表示两个其他Varchar列串联的列
我有一个雇员表,我想添加第三列,名为“FullName”的第一个和最后一个名字的连接。 我怎样才能做到这一点,而不会丢失前两栏中的任何数据?
快速前言:这个答案是基于这个问题与SQL Server有关的最初不正确的标记。 我不再知道它在Oracle SQL Developer上的有效性。
ALTER TABLE Employees ADD FullName AS (FirstName + ' ' + LastName)
虽然在实践中我建议你在SELECT
做这个操作。 这有点个人偏好,但我倾向于认为,在存储额外的计算列时,在您的最终查询中进行的操作要简洁一些,可读性更强,维护也更容易。
编辑:
最终发现这是答案,并被OP列为对这篇文章的评论。 以下是适用于Oracle Sql数据库的语法。
ALTER TABLE emps MODIFY (FULL_NAME VARCHAR2(50) GENERATED ALWAYS AS (first_name || ' ' || last_name) VIRTUAL);
这取决于你的目的,你是否真的需要添加一个新的列到数据库中,或者你只需要根据需要查询“全名”。
要动态查看它,只需运行查询
SELECT firstname + ' ' + lastname AS FullName FROM employees
除此之外,您还可以创建一个简单的存储过程来存储它。
如果您从数据库中选择时需要全名列,那么您可以在创建表员工时创建计算列。
例如:
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
链接地址: http://www.djcxy.com/p/24715.html
上一篇: Add a Column that Represents a Concatenation of Two Other Varchar Columns