메신저 인서트의 값을 제한 :SQL 다음 삽입하려고 다른 테이블에서
insert into TABLEA select b.ID,..... from TABLEB b where code = 'NL'
문제입니다 선택 * TableB의에서 코드 = 'NL'; 1 개 이상의 값을 반환합니다.
어쨌든 단 하나의 값으로 제한하는 것이 있습니까?
은 내가select min(b.id)
시도하지만
메신저 인서트의 값을 제한 :SQL 다음 삽입하려고 다른 테이블에서
insert into TABLEA select b.ID,..... from TABLEB b where code = 'NL'
문제입니다 선택 * TableB의에서 코드 = 'NL'; 1 개 이상의 값을 반환합니다.
어쨌든 단 하나의 값으로 제한하는 것이 있습니까?
은 내가select min(b.id)
시도하지만
사용 rownum = 1
insert into TABLEA select b.ID,..... from TABLEB b where code = 'NL' and rownum = 1
일을 didnt는하지만이 작업을 수행 하시겠습니까? 실제로 2 행을 원하는 경우에는 어떻게됩니까? 쿼리가 둘 이상을 반환하는 이유를 파악할 수 있습니다.
당신이 수집 할 수있는 곳에서,이 경우 맞는 코드가 여러 개인 경우에도 code = NL이 삽입되는 인스턴스가 하나만 필요합니다.
원하는 경우 "select *"를 "select top 1 *"로 변경하면 하위 쿼리에서 하나의 레코드 만 가져옵니다.
TOP는 SQL Server에서만 작동하며 OP는 일반적으로 Oracle 인 PL SQL을 사용합니다. – CathalMF