首页 > 解决方案 > 插入包含基于同一行的计算列的行

问题描述

我想知道是否可以在单个SQL 语句中执行以下操作:

假设我们有一个包含 3 个简单字符串 (varchar) 列的表;col1、col2 和 col3。

INSERT INTO mytable ([col1], [col2], [col3]) VALUES ('super', 'cool', [col1] + [col2])

这失败了 2 条错误消息,第一个是:Invalid column name 'col1'.

我想知道这是否可行,而不必重复 col1 和 col2 的值,即:

INSERT INTO mytable ([col1], [col2], [col3]) VALUES ('super', 'cool', 'super' + 'cool')

我在搞乱 SQL Server 2016。谢谢

标签: sqltsql

解决方案


VALUES表构造函数中选择

INSERT INTO mytable ([col1], [col2], [col3]) 
SELECT t.a, t.b, t.a + t.b
FROM (VALUES ('super', 'cool')) t(a, b)

推荐阅读