첫글자 영문, 한글를 제외한 조회 0 12 1,503

by OMIL [SQL Query] [2018.08.16 11:34:32]


첫글자가 영어, 한글로 시작하는 값을 제외하고,

첫글자가 숫자나 특수문자로 시작하는 테이블의 모든 값을 조회하는 조건을 주려면

어떻게 해야할지 조언구합니다.

by 우리집아찌 [2018.08.16 11:48:20]
WITH T ( COL ) AS (
SELECT 'ABCD' FROM DUAL UNION ALL
SELECT 'abcd' FROM DUAL UNION ALL
SELECT '34BCD' FROM DUAL UNION ALL
SELECT '한글' FROM DUAL UNION ALL
SELECT '#ABCD' FROM DUAL
)

-- 일반
  SELECT * 
    FROM T 
   WHERE SUBSTR(COL,1,1) NOT BETWEEN 'ㄱ' AND '힝'
     AND SUBSTR(COL,1,1) NOT BETWEEN 'A'  AND 'Z'
     AND SUBSTR(COL,1,1) NOT BETWEEN 'a'  AND 'z'
   
   
--정규식
  SELECT * 
    FROM T
   WHERE NOT REGEXP_LIKE ( COL , '^[A-Z]|^[a-z]|^[ㄱ-힝]') 

 


by 신이만든지기 [2018.08.16 12:25:56]
SELECT *
  FROM T
 WHERE REGEXP_LIKE(COL, '^[^A-Za-zㄱ-힣]');   

 


by 우리집아찌 [2018.08.16 13:23:13]

아주 깔끔하네요.. ^^*


by OMIL [2018.08.16 15:16:58]

답변 감사드립니다.


by 우리집아찌 [2018.08.16 16:02:16]

"ㄱ-힣" 맞나요? "ㄱ-힝" 맞나요?

테스트하니까 힣이 맞게 나오네요.

전에 마농님이 조합형인가에선 "힝" 나중이라고 한거 같은데.

테스트 버전은 NLS_CHARACTERSET : AL32UTF8 입니다.


by 신이만든지기 [2018.08.16 19:35:26]

저도 잘모르겠어요.

패치가 됐는지 '힝' 대신 '힣'으로 해야 맞는 데이터가 나오더라구요. ^^;

 


by 마농 [2018.08.17 07:57:40]

MSWIN949 에서는 완성형에 조합형을 추가로 끼워 넣은 형태라
순서가 맞지 않습니다. '힣'은 사이에 끼워 넣은 거라 '힝'이 제일 뒤구요.
유니코드 UTF 에서는 한글 순서대로입니다.


by 우리집아찌 [2018.08.17 08:59:10]

오.. 감사합니다..


by 아발란체 [2018.08.16 13:23:39]
SELECT * FROM T WHERE NOT REGEXP_LIKE(val, '^[[:punct:]]|[[:digit:]]');

by OMIL [2018.08.16 15:17:03]

답변 감사드립니다.


by 우리집아찌 [2018.08.16 16:05:14]

우와 진짜 간단하네요..


by 마농 [2018.08.17 09:47:18]
SELECT *
  FROM t
 WHERE REGEXP_LIKE(v, '^[^[:alpha:]]')
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입