SQL - 문제 미리보기
문제 1720
hard
다음 저장 프로시저에서 빈칸에 들어갈 올바른 구문은?
```sql
CREATE PROCEDURE GetCustomerDetails
@City nvarchar(30),
@PostalCode nvarchar(10)
AS
SELECT CustomerName, ContactName, Address
FROM Customers
WHERE City = @City ______ PostalCode = @PostalCode
GO;
EXEC GetCustomerDetails ______ = 'London', ______ = 'WA1 1DP';
```
정답: A
복합 조건과 매개변수를 활용한 저장 프로시저의 고급 사용법:
쿼리 로직 분석:
• 목적: 특정 도시이면서 특정 우편번호인 고객들 조회
• 조건: 두 조건을 모두 만족해야 하는 경우
• 연산자: AND를 사용해야 정확한 결과 도출
AND vs OR 선택 기준:
AND 사용 (정답):
```sql
WHERE City = @City AND PostalCode = @PostalCode
-- 런던이면서 우편번호가 WA1 1DP인 고객만 조회
-- 더 구체적이고 정확한 검색
```
OR 사용 시:
```sql
WHERE City = @City OR PostalCode = @PostalCode
-- 런던이거나 우편번호가 WA1 1DP인 모든 고객 조회
-- 너무 광범위한 결과, 의도와 다름
```
매개변수 전달 방식:
```sql
EXEC GetCustomerDetails @City = 'London', @PostalCode = 'WA1 1DP';
```
매개변수 전달 규칙:
• 이름 기반 전달: `@parameter_name = value` (권장)
• 순서 기반 전달: `'London', 'WA1 1DP'` (가능하지만 비권장)
• @ 접두사: 실행 시에도 매개변수명에 @ 필요
💡 학습 팁
이 문제를 포함한 SQL 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.