我希望能够在一个表中添加列,其中的值是在'querytime'处根据需要计算值时(可能)选择它们。
是否有一些既定方法可以做到这一点?
编辑:好的,我可以不用'添加列'。我想要的是做一个选择查询,搜索一些(如果它们存在)行所有需要的值计算(一些函数),并填写一些没有计算所有需要值的行。因此,每个查询都会在扩展数据方面发挥作用。 (有些列会以空值或类似值开头)我想我会首先执行扩展部分,然后执行
之后的查询答案 0 :(得分:0)
您使用select表达式,特别是如果您不打算存储计算结果,或者它们依赖于多个表。一个例子,尽可能简单:
SELECT id, (id+1) as next_id FROM table;
答案 1 :(得分:0)
您要求什么类型的数据库?如果是SQL Server,则可以使用AS语法来使用计算列。 例如:
create table Test
(
Id int identity(1,1),
col1 varchar(2) default 'NO',
col2 as col1 + ' - Why?'
)
go
insert into Test
default values
go
select * from Test
drop table Test
答案 2 :(得分:0)
在SQL世界中,将列添加到现有表通常很昂贵,所以我建议不要这样做。也许你可以管理this:
之类的东西SELECT OrderID,
ProductID,
UnitPrice*Quantity AS "Regular Price",
UnitPrice*Quantity-UnitPrice*Quantity*Discount AS "Price After Discount"
FROM order_details;
如果你真的坚持要添加一个新列,你可以选择(未测试):
ALTER TABLE order_details ADD column_name datatype
UPDATE order_details SET column_name = UnitPrice+1
您基本上ALTER TABLE
添加新列,然后对所有表执行UPDATE
操作以设置新添加列的值。