* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
|
Window10 64bit |
|
10.2 |
|
10.2 |
|
java |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
SELECT
*
FROM
(
SELECT
컬럼명,
(
CASE
WHEN 컬럼명= '1' THEN '11'
WHEN 컬럼명= '2' THEN '22'
WHEN 컬럼명= '3' THEN '33'
WHEN 컬럼명= '4' THEN '44'
ELSE 'etc'
END
) AS ???,
COUNT(컬럼명) ???cnt
컬럼명
FROM
테이블명
WHERE
컬럼명 != ''
AND
컬럼명 BETWEEN 기간날짜 AND 기간날짜
GROUP BY
컬럼명 ,
컬럼명
ORDER BY
???cnt DESC
)
이렇게 사용중입니다. 그런데 컬럼명 << 에 들어가는 검색값에 글자만 들어가는 것 이 아니라 숫자와 특수문자 가 함께 들어가서 제외하고싶은데
어떻게 사용해야할까 여쭤봅니다.. 한글만 들어가게 하고싶습니다 어디에 조건을 어떻게 줘야할까요
1. CUBRID에서 정규식 관련 함수는 REGEXP와 RLIKE가 있습니다. 두 함수는 동일한 기능을 하며 정규 표현식을 이용한 패턴을 매칭하기 위해 사용됩니다.
REGEXP, RLIKE 온라인 매뉴얼 URL : https://www.cubrid.org/manual/ko/10.2/sql/function/condition_op.html?highlight=regexp#regexp-rlike
2. CUBRID에서는 Replace 함수에서 정규 표현식을 사용할 수 없습니다. 정규식 관련 함수는 결과값으로 0과 1만을 반환하기 때문입니다.
그렇기 때문에 Replace에서 정규식을 사용하기 위해서는 DB에서 가져온 데이터를 응용 단에서 숫자와 특수문자를 제외해주는 방법을 사용하셔야 할 것 같습니다.