这是我的第一个问题。我是SQL Server和T-SQL的新手。
我想创建一个表,其中一列使用来自另一列的数据。我以为我可以使用select函数,但是不允许这样做。
怎么做?
以这种方式创建视图非常简单,但我希望有一个表不能查看。
应该看起来像
Column A, ColumnB,
Column C=select count(*) from [another table] where....
你能告诉我吗?
答案 0 :(得分:0)
SELECT [COLUMN A],[COLUMN B],COUNT(*) as [COLUMN C]
INTO [destination table] FROM [another table] where...
您应该使用别名
答案 1 :(得分:0)
您使用create table语法创建表,因为您需要定义字段名称和大小。在联机丛书中查看语法。除非要创建一次性使用的临时表或临时表,否则不要使用SELECT INTO。它不是创建新表的好选择。另外,除了第一列之外,您没有说出任何其他列的来源,因此可能无法从初始插入中正确设置正确的字段大小。此外,坦率地说,您应该花时间考虑您需要哪些列以及它们应该是什么数据类型,避免对永久使用的表执行此操作是不负责任的。
要填充,请使用带有select而不是values语句的Insert语句。如果只有列c来自另一个表,那么它可能类似于“:
Insert table1 (colA, Colb, colC)
select 'test', 10, count(*)
from tableb
where ...
如果您必须从多个表中获取数据,那么您可能需要加入。
如果你需要维护计算列,因为TableB中的值发生了变化,那么你可能需要在TableB或更好的上编写触发器(更容易开发和维护,不太可能出错或造成数据完整性问题)使用a查看此而不是单独的表。