2017-03-14 1 views
1

메신저 인서트의 값을 제한 :SQL 다음 삽입하려고 다른 테이블에서

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

문제입니다 선택 * TableB의에서 코드 = 'NL'; 1 개 이상의 값을 반환합니다.

어쨌든 단 하나의 값으로 제한하는 것이 있습니까?

은 내가 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이 삽입되는 인스턴스가 하나만 필요합니다.

원하는 경우 "select *"를 "select top 1 *"로 변경하면 하위 쿼리에서 하나의 레코드 만 가져옵니다.

+0

TOP는 SQL Server에서만 작동하며 OP는 일반적으로 Oracle 인 PL SQL을 사용합니다. – CathalMF

관련 문제