繁体   English   中英

SQL(SQL/Oracle) 从 select 语句中插入值

[英]SQL(SQL/Oracle) insert value from a select statement

我想从 select 语句中插入 (user_id) 值,如下所示。 此查询能否同时在 sqlserver 和 oracle 上运行? 好心提醒。

insert into b_user (user_id,
                    user_name,
                    user_email,
                    user_address,
                    user_city,
                    user_state,
                    user_country,
                    user_zip)
values (
   select max(user_id) from b_user ,
   david brown,
   david@david.com,
   chicago,
   il,
   usa,
   60007)

不,该查询在 Oracle 或 SQL 服务器中均无效。 但是,您可以根据select语句进行insert 请注意,您还必须将字符串视为字符串并将它们括在引号中。

insert into b_user (user_id,
                    user_name,
                    user_email,
                    user_address,
                    user_city,
                    user_state,
                    user_country,
                    user_zip)
   select max(user_id) user_id,
          'david brown',
          'david@david.com',
          'chicago',
          'il',
          'usa',
          '60007'
     from b_user

如果我们在SELECT语句两边插入括号() ,它就会起作用。 我试过 SQL 服务器,它对我有用。 也许您也可以尝试对 Oracle 进行以下查询。

insert into b_user (user_id,
                    user_name,
                    user_email,
                    user_address,
                    user_city,
                    user_state,
                    user_country,
                    user_zip)
values (
   (select max(user_id) from b_user),
   'david brown',
   'david@david.com',
   '123 davids street',
   'chicago',
   'il',
   'usa',
   60007
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM