- 전체
- Sample DB
- database modeling
- [표준 SQL] Standard SQL
- G-SQL
- 10-Min
- ORACLE
- MS SQLserver
- MySQL
- SQLite
- postgreSQL
- 데이터아키텍처전문가 - 국가공인자격
- 데이터 분석 전문가 [ADP]
- [국가공인] SQL 개발자/전문가
- NoSQL
- hadoop
- hadoop eco system
- big data (빅데이터)
- stat(통계) R 언어
- XML DB & XQuery
- spark
- DataBase Tool
- 데이터분석 & 데이터사이언스
- Engineer Quality Management
- [기계학습] machine learning
- 데이터 수집 및 전처리
- 국가기술자격 빅데이터분석기사
- 암호화폐 (비트코인, cryptocurrency, bitcoin)
ORACLE [오라클][Oracle] 대소문자 구분 없이 검색하는 경우에 WHERE 조건
2021.10.13 22:28
[오라클][Oracle] 대소문자 구분 없이 검색하는 경우에 WHERE 조건
오라클 대소문자 구분 없이 검색하는 경우에 WHERE 조건
테이블의 문자열 컬럼을 대상으로 대소문자를 가리지 않고 검색을 해야할 때가 있습니다.
예를 들어 고객사의 이름이 대소문자를 구분하지 않고 저장되어 있는 경우 입니다.
SELECT * FROM CUSTOMERS;
|
cs |
이 경우 사용자가 고객사의 이름을 대소문자를 구분하고 외우고 있지 않는 이상
=
연산자를 사용하거나 LIKE
문을 사용하기가 어렵습니다. 만약 대소문자를 구분하여 알고 있다고 하더라도 편의적인 측면에서 매우 번거로울것입니다.
이 경우 두가지로 해결이 가능한데,
WHERE
절에 저장된 데이터와 검색할 문자열 모두 대문자 또는 소문자로 변경하여 비교하는 것입니다.
SELECT *
FROM CUSTOMERS
WHERE LOWER(NAME) = LOWER('INTL FCSTONE');
|
cs |
사용자가 모든 문자열을 검색조건에 대문자로 입력했더라도 소문자로 변경하여 비교하므로 대소문자를 구분할 필요가 없습니다. 만약
LIKE
문을 사용하는 경우 아래와 같이 사용할 수 있습니다.
SELECT *
FROM CUSTOMERS
WHERE LOWER(NAME) LIKE LOWER('%InTl%');
|
cs |
UPPER
를 사용하는것도 가능합니다.
SELECT *
FROM CUSTOMERS
WHERE UPPER(NAME) LIKE UPPER('%InTl%');
|
cs |
당연하지만 모든 행의 NAME을 소문자로 변경하는 작업을 수행하므로
INDEX
컬럼인 경우 INDEX 이용이 불가능하고 데이터가 매우 많은 경우 속도가 느릴 수 있습니다.
출처: https://dololak.tistory.com/797 [코끼리를 냉장고에 넣는 방법]
본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | 오라클 기본 샘플 데이터베이스 | 졸리운_곰 | 2014.01.02 | 25084 |
공지 | [SQL컨셉] 서적 "SQL컨셉"의 샘플 데이타 베이스 SAMPLE DATABASE of ORACLE | 가을의 곰을... | 2013.02.10 | 24563 |
공지 | [G_SQL] Sample Database | 가을의 곰을... | 2012.05.20 | 25942 |
1 | [hadoop] Python으로 Hive 연결하기 | 졸리운_곰 | 2021.03.04 | 263 |