gpt4 book ai didi

sql - 将多行插入表中,只更改一个值

转载 作者:行者123 更新时间:2023-12-04 10:18:35 25 4
gpt4 key购买 nike

假设我有一个包含以下列的表格:

字段 1 |领域 2 |字段3 |字段 4

我想在这个表中插入多行,但每一行的 field1、field2 和 field3 的值是相同的。只有 field4 的值会改变。

显然我可以单独插入每一行,但结果查询会有点难看,我想知道是否有更有效/更优雅的方法来做到这一点。

例如,我想到了这样的事情:

insert into my_table (field1, field2, field3, field4) values (foo, bar, baz, ('value one','value two','value three','value four'))

结果将是:
field1 | field2 | field3 | field4
foo | bar | baz | value one
foo | bar | baz | value two
foo | bar | baz | value four
foo | bar | baz | value five

实际上,'field4' 列是字符串类型,在我编写查询时知道不同的值。没有必要从 table 或任何东西中获取它们(尽管如果可能,我对可以做到的解决方案感兴趣)
这是可行的还是我必须分别编写每个插入?

编辑:我已将问题更改为更清楚更改列的数据类型(一般文本数据)以及数据来自何处。对不起,那些没有这些信息就已经回答的人。

谢谢。

最佳答案

您可以使用 case 对 Nicholas Krasnov 的回答进行变体设置字符串值的语句:

insert into my_table(field1, field2, field3, field4)
select 'foo', 'bar', 'baz',
case level
when 1 then 'value one'
when 2 then 'value two'
when 3 then 'value three'
when 4 then 'value four'
end
from dual
connect by level <= 4;

select * from my_table;

FIELD1 FIELD2 FIELD3 FIELD4
------ ------ ------ --------------------
foo bar baz value one
foo bar baz value two
foo bar baz value three
foo bar baz value four

SQL Fiddle .

添加更多行/值只需要更改 level限制和额外 when要匹配的子句。 ( like this )。你也可以有一个 else如果您发现数字不匹配,则会发出警告。哪个字符串值与哪个 level 搭配没有特殊意义值,顺便说一句。

关于sql - 将多行插入表中,只更改一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19227699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com