[英]Create a new column based on other columns
我设法在新表中创建以下列:
CREATE TABLE t_issue_dates as
SELECT issue_d,
cast(substr(issue_d,5,4) as numeric) as issue_year
FROM myDB
(代码将年月变量重新编码为仅年变量)
但是,我无法将此变量添加到现有表“ myDB”中。 我试过使用:
ALTER TABLE myDB ADD v_year
命令,但是我无法正确处理它。
有谁知道我如何将以上变量添加到“原始”表myDB中?
谢谢!
首先,许多数据库都支持计算列或生成列。 这意味着您可以通过执行以下操作将虚拟列添加到数据库:
alter table t_issue_dates add issue_year as (cast(substr(issue_d, 5, 4) as numeric));
我推荐这种方法,因为issue_year
始终是最新的。
其次,您可以将其作为实际列来执行,但是该值可能会过时,并且需要为每个插入/更新的行重新计算:
alter table t_issue_dates add issue_year numeric;
update t_issue_dates
set issue_year = cast(substr(issue_d, 5, 4) as numeric);
作为记录,我将使用int
而不是numeric
。
假设您正在使用MSSQL。 值得阅读有关how to insert
文档或简单的Google
添加栏:
Alter table t_issue_dates
Add V_year Int
下一步:这只会为该特定列插入数据。
Insert into t_issue_dates (v_year)
SELECT
cast(substr(issue_d,5,4) as numeric)
FROM myDB
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.