3

このクエリが Informix で可能かどうかを知る必要があります。

insert into emp(emp_id, sal, desg)
values (111, (select salary from emp_sal where emp_id=222), 'xxx');

テーブル構造は次のとおりです。

emp : emp_id、名前、sal、desg

emp_sal : emp_id、sal

4

2 に答える 2

8

Informix では試していませんが、ほとんどのデータベースがサポートしていますinsert into ... select:

insert into emp(emp_id, sal, desg) 
select 111, salary, 'xxx' 
from emp_sal where emp_id = 222;
于 2013-04-04T04:44:24.170 に答える
1

サブクエリが単一の行を返す限り、記述されたステートメントは機能するはずです。

コンセプトの証明:

SQL[1871]: create temp table x(i integer, j integer, s char(10));
SQL[1872]: insert into x(i,j,s) values(1, (select atomic_number from elements where name = 'Carbon'), "Elephant");
SQL[1873]: select * from x;
1|6|Elephant
SQL[1874]: 

私のテストデータベースには要素のテーブルがあるため、サブセレクトが機能します。警告: 7.31 ではなく、11.70.FC6 でテストしました。かなり古いバージョンの Informix を使用しているように見える場合、マイレージは異なる場合があります (7.31 は Y2K、IIRC の前に最初にリリースされましたが、7.31.UDn は 2000 年代半ば、おそらく 2005 年頃のフィックスパックでした)。

于 2013-04-04T17:07:54.097 に答える