SQL:在一列中插入多个不同的硬编码值
我还没有找到解决这个问题的办法。我想插入具有2个或更多不同硬编码值的多行,但也要插入从另一个表中获取的数据 示例:我想向另一个表中ID为“0”的用户的表中添加2项,而不运行2个查询 这就是我到目前为止所做的:SQL:在一列中插入多个不同的硬编码值,sql,sql-server,tsql,select,sql-insert,Sql,Sql Server,Tsql,Select,Sql Insert,我还没有找到解决这个问题的办法。我想插入具有2个或更多不同硬编码值的多行,但也要插入从另一个表中获取的数据 示例:我想向另一个表中ID为“0”的用户的表中添加2项,而不运行2个查询 这就是我到目前为止所做的: INSERT INTO DB.dbo.Table WITH(ROWLOCK, XLOCK) ( col1, col2, col3, col4 ) SELECT DISTINCT customer_id, hardcoded_value1,
INSERT INTO
DB.dbo.Table WITH(ROWLOCK, XLOCK) (
col1,
col2,
col3,
col4
)
SELECT
DISTINCT customer_id,
hardcoded_value1,
constant1,
constant2
FROM
DB.dbo.Other_Table
WHERE
ID = '0';
您可以
交叉连接您的使用表值构造函数选择查询,该表值构造函数保存多个具有harcoded值的记录。这将为查询返回的每一行生成表值构造函数中提供的行数
INSERT INTO
DB.dbo.Table WITH(ROWLOCK, XLOCK) (
col1,
col2,
col3,
col4
)
SELECT
DISTINCT t.customer_id,
x.hardcoded_value,
t.constant1,
t.onstant2
FROM DB.dbo.Other_Table t
CROSS JOIN (VALUES ('harcoded 1'), ('harcoded 2')) as x(hardcoded_value)
WHERE t.ID = '0';
您可以交叉连接您的使用表值构造函数选择查询,该表值构造函数保存多个具有harcoded值的记录。这将为查询返回的每一行生成表值构造函数中提供的行数
INSERT INTO
DB.dbo.Table WITH(ROWLOCK, XLOCK) (
col1,
col2,
col3,
col4
)
SELECT
DISTINCT t.customer_id,
x.hardcoded_value,
t.constant1,
t.onstant2
FROM DB.dbo.Other_Table t
CROSS JOIN (VALUES ('harcoded 1'), ('harcoded 2')) as x(hardcoded_value)
WHERE t.ID = '0';
我无法从你的问题中看出不同价值观的基础是什么。您可以使用CASE
语句根据某些条件插入不同的硬编码值:
INSERT INTO
DB.dbo.Table WITH(ROWLOCK, XLOCK) (
col1,
col2,
col3,
col4
)
SELECT
DISTINCT customer_id,
CASE WHEN Condition1 THEN hardcoded_value1
WHEN Condition2 THEN hardcoded_value2
...
END,
constant1,
constant2
FROM
DB.dbo.Other_Table
WHERE
ID = '0';
我无法从你的问题中看出不同价值观的基础是什么。您可以使用CASE
语句根据某些条件插入不同的硬编码值:
INSERT INTO
DB.dbo.Table WITH(ROWLOCK, XLOCK) (
col1,
col2,
col3,
col4
)
SELECT
DISTINCT customer_id,
CASE WHEN Condition1 THEN hardcoded_value1
WHEN Condition2 THEN hardcoded_value2
...
END,
constant1,
constant2
FROM
DB.dbo.Other_Table
WHERE
ID = '0';
有什么问题吗?您看到“硬编码的\u值1”,我希望每个查询不仅有1个硬编码的值,而且col2有多个硬编码的值,而无需对每个硬编码的值运行多次查询。有什么问题吗?您看到“硬编码的\u值1”,我不希望每个查询只有1个硬编码的值,但是col2有多个硬编码值,而不需要对每个硬编码值运行多次查询。非常感谢,这似乎是我需要的东西。:)非常感谢,这似乎是我需要的东西。:)