简体   繁体   English

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

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

I want to insert (user_id) value from a select statement like below.我想从 select 语句中插入 (user_id) 值,如下所示。 Can this query will work on both sqlserver and oracle?此查询能否同时在 sqlserver 和 oracle 上运行? Kindly advise.好心提醒。

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)

No, that query won't work in either Oracle or SQL Server.不,该查询在 Oracle 或 SQL 服务器中均无效。 You can do an insert based on a select statement, however.但是,您可以根据select语句进行insert Note that you also have to treat strings as strings and enclose them in quotes.请注意,您还必须将字符串视为字符串并将它们括在引号中。

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

If we insert bracket () around the SELECT statement, it will work.如果我们在SELECT语句两边插入括号() ,它就会起作用。 I tried for SQL Server and it's working for me.我试过 SQL 服务器,它对我有用。 Maybe you can try the following query for the Oracle as well.也许您也可以尝试对 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