2017-03-14 17 views
1

イムを挿入中の値を制限:SQL次挿入しようとし、別のテーブルから

insert into TABLEA select b.ID,..... from TABLEB b where code = 'NL'

問題であることを選択* TABLEBからコード=「NL」; 1つ以上の値を返します。

とにかくそれを1つの値に制限するにはどうすればよいですか?

iは select min(b.id)しようとしたが、それは

答えて

0

使用rownum = 1

insert into TABLEA select b.ID,..... from TABLEB b where code = 'NL' and rownum = 1 

を仕事didntはしかし、あなたは、あなたがこれを行うにはよろしいですか?実際には2行目が必要な場合はどうなりますか?クエリが複数の理由を返す理由を理解したいかもしれません。

1

あなたが集めることができるものは、これに適合する複数のレコードがあるにもかかわらず、code = NLが挿入される場所が1つだけ必要です。

これが必要な場合は、「select *」を「select top 1 *」に変更し、サブクエリから1つのレコードのみを取り出します。

+0

TOPはSQL Serverのみで動作し、OPは通常はOracleであるPL SQLを使用しています。 – CathalMF

関連する問題