[SQL] 하위 쿼리를 사용하여 여러 행을 삽입
SQL하위 쿼리를 사용하여 여러 행을 삽입
이 쿼리입니다 :
INSERT INTO qualification_lookup (variation, correct_qualification)
SELECT (SELECT Qualification FROM student WHERE Qualification like 'A%') ,'A-Level'
내가 쿼리를 실행하려고하면이 내가 얻을 오류입니다.
그래서 친절하게 사람이 그렇게 나에게 어떤 대안을 지시하는 경우 SQL에 새로운 오전.
해결법
-
==============================
1.
INSERT INTO qualification_lookup (variation, correct_qualification) select Qualification,'A-Level' from student where Qualification like 'A%'
-
==============================
2.
INSERT INTO qualification_lookup (variation, correct_qualification) select Qualification, 'A-Level' from student where Qualification like 'A%'
올바른 구문은
-
==============================
3.당신은 당신이 당신의 쿼리를 작성하는 방법을 통해 생각해야 - 당신은 그냥이 실행 한 경우 당신이 얻을 것이 무엇 고려 :
당신은 당신이 당신의 쿼리를 작성하는 방법을 통해 생각해야 - 당신은 그냥이 실행 한 경우 당신이 얻을 것이 무엇 고려 :
SELECT (select Qualification from student where Qualification like 'A%') ,'A-Level'
당신은 내 생각을 것 점점 정확한 오류 - 'A 급'- 당신은 하나의 문자열과 일치하려고 많은 자격의 목록을 가지고있다.
다른 한편으로,이 잘 작동합니다
select Qualification, 'A-Level' from student where Qualification like 'A%'
INSERT 및 UPDATE 문에 그 트릭은, 내 마음에 당신이 필요로하는 무엇을 얻는 SELECT 문을 작성하고 다음과 같은 것을 마무리하는 것입니다
INSERT INTO qualification_lookup (variation, correct_qualification) select Qualification, 'A-Level' from student where Qualification like 'A%'
-
==============================
4.문제는이 하위 쿼리입니다 :
문제는이 하위 쿼리입니다 :
select Qualification from student where Qualification like 'A%'
여러 행을 반환합니다. 당신이 오류 메시지가 512을받을 이유
필요는 사용하지합니다.
이 충분하다 :
INSERT INTO qualification_lookup (variation, correct_qualification) select Qualification, 'A-Level' as correct_qualification from student where Qualification like 'A%'
-
==============================
5.
declare @count int declare @index int = 1 declare @currentQualificationId int = null set @count = (select distinct count(QualificationId) from Qualification from where Qualification like 'A%') set @currentQualificationId = (SELECT QualificationId from (select QualificationId , ROW_NUMBER() OVER (ORDER BY QualificationId) AS RowNumber from Qualification where Qualification like 'A%') as Qualification where Qualification.RowNumber = @index) while (@index <= @count) begin INSERT INTO qualification_lookup (variation, correct_qualification) values((select Qualification where QualificationId = @currentQualificationId),'A-Level') set @index = @index + 1 set @currentQualificationId = (SELECT QualificationId from (select QualificationId , ROW_NUMBER() OVER (ORDER BY QualificationId) AS RowNumber from Qualification where Qualification like 'A%') as Qualification where Qualification.RowNumber = @index) END
from https://stackoverflow.com/questions/13830312/insert-multiple-rows-using-subquery by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 무엇 SQL 데이터베이스는 CHECK 제약 조건에 서브 쿼리를 지원합니까? (0) | 2020.07.11 |
---|---|
[SQL] GetSchemaTable ()를 사용하여에만 열 이름을 검색하는 (0) | 2020.07.11 |
[SQL] 변수를 사용하여 SQL XML 속성 값을 가져옵니다 (0) | 2020.07.11 |
[SQL] 방법 최대 절전 모드 HQL에서 오라클의 REGEXP_LIKE를 사용 하는가? (0) | 2020.07.11 |
[SQL] LocalDB에 연결하는 IIS (0) | 2020.07.11 |