sql – 将多行插入到只有一个值更改的表中
发布时间:2020-05-24 09:46:07 所属栏目:MsSql 来源:互联网
导读:假设我有一个包含以下列的表: 场1 |场2 | field3 |字段4 我想在此表中插入多行,但field1,field2和field3的值对于每一行都是相同的.只有field4的值会改变. 显然我可以单独插入每一行,但结果查询会有点难看,我想知道是否有更有效/更优雅的方法来做到这一点. 我
|
假设我有一个包含以下列的表: 场1 |场2 | field3 |字段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’列是一个字符串类型,当我编写查询时,不同的值是已知的.没有必要从桌子或任何东西中获取它们(尽管如果可能的话,我对能够做到这一点的解决方案感兴趣) 编辑:我已经更改了问题,以更清楚地更改列的数据类型(一般文本数据)以及数据来自何处.对于那些已经回答没有这些信息的人抱歉. 谢谢. 解决方法您可以使用Nicholas Krasnov的答案的变体和case语句来设置字符串值:insert into my_table(field1,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. 添加更多行/值只需要更改级别限制和额外的子句匹配. (like this).如果您的号码不匹配,您也可以在其他地方发出警告.顺便提一下,哪个字符串值与哪个级别值相关并没有特别的意义. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在SQL Server 2008中创建复合外键
- sql-server – 如何删除SQL Server 2008中的区分大小写检查
- .net – 数据库本地化 – 查找列表 – 更智能的方式
- 开发人员的最佳数据库书籍
- 链接变量赋值如何在SQL中工作?
- 星外科技每天自动备份SQL2000/Mysql的工具
- sql-server – SQL Server存储过程避免游标
- MSSQL 解决link导数据至oracle出错:Server: Msg 7399, Lev
- sql-server-2005 – 无法重建索引,因为行超过最大大小(Micr
- linux mysql 报错:MYSQL:The server quit without updatin
