* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
Window10 | |
CUBRID 10.1 (10.1.3.7765-265E708) 64bit | |
CUBRID Manager 10.2.0.0001 (64bit) |
|
java |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
문자열에서 특정 요소 ( ' )를 없애는 것 관련하여 질문이 있습니다.
(보안상 이유로 실제 db명 대신 가명을 사용하였음)
TEMP_TABLE이라는 테이블 안에 TEMP_COLUMN이라는 컬럼 (VARCHAR) 이 있고
이 안의 값 중에 작은 따옴표가 들어있는 문자열이 있습니다.
SELECT REPLACE( TEMP_COLUMN, '''' ,'' ) FROM TEMP_TABLE;
SELECT REPLACE( TEMP_COLUMN, '\'' ,'' ) FROM TEMP_TABLE;
이런 식으로 작은 따옴표를 선택해서 지우려고 했는데 작은따옴표가 계속 나오거나 문법 오류가 뜹니다.
이 작은 따옴표를 없애고 순수 문자열만 있는 값을 어떻게 select할 수 있을까요?
csql> select * from t1;
=== <Result of SELECT Command in Line 1> ===
col1
======================
'abc'def'
abc 다음 ' (작은 따옴표) 를 제거하기 위해서 질문자님이 올리신 첫 번째 방법으로 REPLACE() 함수 두 번째 인자 값을 ''''로 사용하시면 됩니다.
csql> select replace(col1, '''' ,'') from t1;
=== <Result of SELECT Command in Line 1> ===
replace(col1, '''', '')
======================
'abcdef'
추가로, abcdef 양 끝에 있는 ' (작은 따옴표)는 문자형 데이터를 구분하기 위해 표시 된 것으로 제거가 불가능 합니다.