问题描述
我有一个表,我想在其中选择某些列,然后根据该选择创建转换后的列。出于安全原因,我无法创建新表,并认为在同一条语句中可能存在SELECT和ALTER的方法。
我的下面的语句运行,但是没有生成该列。我做错什么了/这种方法行不通吗?有更好的方法吗?
SELECT * col1,col2,col3 FROM db
AS db2
ALTER TABLE db2 ADD col4 AS (transformation) PERSISTED
指导和推荐表示赞赏。
解决方法
您可能只需要执行查询,或者,如果您想经常查询数据,则可以在数据库中查看。
在SQL Server以及最可能在其他SQL变体中,您可以使用下一条语句创建视图(db将是表名,db2视图名):
create view db2 as
select col1,col2,col3,(transformation) as col4
from db
通常,您需要为其授予一些权限,除非您是它的唯一用户。
创建视图是一项一次性的任务,之后您可以按以下方式查询数据:
select col1,col4
from db2
where ...