복기
# 질문1
상표가 SK에너지, S-OIL, GS칼텍스 중 하나이면서 위치(구)가 은평구, 강남구, 영등포구 중 하나가 아닌 주유소 상호는?
이에대한 답으로
select * from oil_price where 상표 in (SK에너지, S-OIL, GS칼텍스) and 구 not in (은평구, 강남구, 영등포구);
라고 입력했더니
ERROR 1054 (42S22): Unknown column 'SK에너지' in 'where clause'
에러가 뜨는 것이였다.
딱히 답은 나오지 않았고, 수작업으로 풀었는데,
나중에 알고보니깐
오직 ‘’를 안써도 허용이 되는것은 컬럼값 뿐이였다.
그외 필드값을 입력하는것에 있어서는 문자일 경우 ‘’처리를 해줘야하는것같다. (최소한 한글은 확실)
결과적으로 답안은
select * from oil_price where 상표 in ('SK에너지', 'S-OIL', 'GS칼텍스') and 구 not in ('은평구', '강남구', '영등포구');
===============================================
# 질문 2
가격이 1498원과 1598원 사이이거나 셀프주유가 아닌 주유소 중, 위치(구) 이름이 4글자 이상인 주유소를 상호순으로 정렬했을 때 두번째 주유소 상호는?
이에대한 답으로
select * from oil_price wher (가격 between 1498 and 1598) or (셀프 = 'N')) and char_length(구) >= 4 order by 상호;
라고 했더니 또 에러다;
length를 써준것 때문에 그런가? 싶어서
select * from oil_price wher (가격 between 1498 and 1598) or (셀프 = 'N')) order by 상호;
라고 했는데 또 에러다.
결국.. 이것도 수작업으로… 하려다가 또 시도해봤다.
select * from oil_price where ( (가격 >= 1498 or 가격 <= 1598) or 셀프 ='N') and
-> length(구) >= 4
-> order by 상호;
라고 했더니, 출력은 되는데 조건 값 모두가 기능마비로써 무의미한 코드였다.
결과적으로 답안은
select * from oil_price where (가격 between 1498 and 1598 or 셀프='N') and 구 like '____%' order by 상호;
'개발일지 > SQL' 카테고리의 다른 글
SQLD 자격증 1 환경설정 (0) | 2022.08.09 |
---|---|
SQL 데이터베이스 데이터 가져오기 (0) | 2022.07.08 |
SQL 루틴 저장해 놓았던 csv 파일을 SQL에 테이블 생성해서 값 넣어주기 (0) | 2022.07.06 |
SQL Subquery 종류 (0) | 2022.07.02 |
SQL Scalar Functions (0) | 2022.07.02 |