将提取的列添加到表中 - SQL

时间:2015-07-23 23:04:24

标签: sql sql-server database

在我的数据库表Actors中,我有两个领域:名称和工资。 '名称'由逗号和空格分隔的姓和名字组成。 我想添加两个列:fname和lname,除了现有的列,我能够输出这两个新列,但我很难将这些列添加到Actors表。

名称/工资 - > name / salary / fname / lname

有人可以帮帮我,让我知道怎么做吗?提前谢谢。

这是我写的sql命令:

select
case when name like '%,%' then
substring(name, charindex(',', name)+2, len(name))
else substring(name, 1, len(name)) end as fname,
case when name like '%,%' then
substring(name, 1, charindex(',', name)-1) end as lname
from Actors;

2 个答案:

答案 0 :(得分:1)

只需针对您的数据库执行这些操作即可添加新列。

ALTER TABLE Actors ADD COLUMN fname TEXT
ALTER TABLE Actors ADD COLUMN lname TEXT

答案 1 :(得分:0)

如果这些列始终是从现有列派生的,则不要向表中添加新列。而是添加计算列:

alter table Actors add fname as (case when name like '%,%'
                                      then substring(name, charindex(',', name)+2, len(name))
                                      else name
                                 end);

alter table Actors add lname as (case when name like '%,%' then
                                      then left(name, charindex(',', name) - 1)         
                                 end);

然后在查询表时自动计算值。